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

数组

  • 选择排序
    • 伪代码
    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++)
      {
          交换相邻两个 找最大值
      }
    }

猜你喜欢

转载自www.cnblogs.com/lily233/p/11996422.html
今日推荐