算法冒泡排序(一个简单的排序)

Posted ltprogrammer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法冒泡排序(一个简单的排序)相关的知识,希望对你有一定的参考价值。

冒泡排序是一个比较简单的排序

但我觉得冒泡排序有一个小点(因为有些同学都不加)

冒泡排序可以设置一个flag来判断是否排完序,如果一遍排下来没有进行交换,就算是排完了,就不需要之后的循环,可以直接break。

代码:

void pop(int *arr,int size)
{
  for(int i=size-1;i>0;i--)
  {
    bool flag = true;
    for(int j=0;j<i;j++)
    {
      if(arr[j]>arr[j+1])
      {
        int temp = arr[j+1];
        arr[j+1] = arr[j];
        arr[j] = temp;
        flag = false;
      }
    }
    if(flag)
    {
      break;
    }
  }
}

void pop2(int *arr,int len)
{
  for(int i=0;i<len-1;i++)
  {
    bool flag = true;
    for(int j=len-2;j>=i;j--)
    {
      if(arr[j+1]<arr[j])
      {
        int temp = arr[j+1];
        arr[j+1] = arr[j];
        arr[j] = temp;
        flag = false;
      }
    }
    if(flag) break;
  }
}

以上是关于算法冒泡排序(一个简单的排序)的主要内容,如果未能解决你的问题,请参考以下文章

冒泡排序算法原理和代码实现,就是这么简单。。。

面试只会冒泡排序?教你一个比冒泡排序还简单的排序算法!-Testfan打卡学测开1011

简单排序算法(冒泡排序插入排序选择排序)JS实现

简单排序算法:冒泡法排序(Java)

简单排序算法之冒泡排序

排序算法系列1--简单排序(选择,冒泡,直接插入)