数组和指针的选择排序和冒泡排序区别

数组

  • 选择排序
    • 伪代码
for i=0 to n-2 do//值比较到n-2个 到n-1个数的时候就停止了
      for j=i to n-1 do 
          找最小数min
          min与a[i]交换
       end for
end for
  • 真正代码
for(i=0;i<n-1;i++)
{
    for(j=i;j<n;j++)
    {
        if(a[j]<a[i])
        {
            temp=a[j];a[j]=a[i];a[i]=a[j];
        }
    }
}
  • 冒泡排序
    • 伪代码
for i=0 to n-2 do//值比较到n-2个 到n-1个数的时候就停止了
      for j=0 to n-i-2 do 
          找最小数min
          min与a[i]交换
       end for
end for
  • 真正代码
for(i=0;i<n-1;i++)
{
    for(j=0;j<n-i-1;j++)
    {
        if(a[j]>a[j+1])
        {
            temp=a[j];
            a[j]=a[j+1];
            a[j+1]=temp;
        }
    }
}

指针

  • 选择排序
    • 伪代码
for i=0 to n-1 do
    for j=i+1 to n-1 do
        找最小值 交换
    end for
end for
  • 真正代码
for(i=0;i<n;i++)
{
   for(j=i+1;j<n;j++)
   {
       if(a[j]<a[i])
       {
           交换a[j]和a[i]
       }
   }
}
  • 冒泡排序
    • 伪代码
for i=1 to n-1 do
    for j=0 to n-i-1 do
        找最大值交换 相邻的
    end for
end for
  • 真正代码
for(i=1;i<n;i++)
{
    for(j=0;j<n-i;j++)
    {
        交换相邻两个 找最大值
    }
}
原文地址:https://www.cnblogs.com/lily233/p/11996422.html