双向冒泡排序

2018-10-16  本文已影响0人  小码弟
void bibubblesort(int array[], int len)
{
  int left = 0;
  int right = len-1;
  int t;
  while(left<=right)
  {
    // 逆向
    for(int i=right; i>left; i--)
    {
      if(array[i-1]>array[i])
        {
            swap(array[i-1], array[i]);
            t = i;
        }
      }
    left = t+1;
    // 正向
    for(int i=left; i<right; i++)
    {
      if(array[i-1]>array[i])
      {
        swap(array[i-1], array[i]);
        t = i;
      }
     }
    right = t - 1;
  }
}
上一篇下一篇

猜你喜欢

热点阅读