资治通鉴 发表于 2020-10-20 14:22:02

冒泡排序

#include <iostream>
using namespace std;

void bubblesort(double arr[], int len)
{
      double temp;
      for(int i=0; i<len; i++)
      {
                for(int j=0; i<len-i-1; j++)
                {
                        if(arr > arr
                        {
                              temp = arr;
                              arr = arr;
                              arr = temp;
                        }
                }
      }
}


int main(void)
{
      double arr[] = {2, 6, 7, 8, 9, 1};
      bubblesort(arr, 6);
      for(int i=0; i<6; i++)
                cout << arr << ", ";
      cout << endl;
      return 0;
}


疑问
为啥循环部分和条件部分不能合并写成
for(int j=0; i<len-i-1 && arr>arr; j++)
      // 交换前后两个元素

这样写有啥不妥

资治通鉴 发表于 2020-10-20 14:24:57

插入排序

#include <iostream>
using namespace std;

void insertsort(double arr[], int len)
{
      double temp;
      for(int i=1; i<len; i++)
      {
                for(int j=i; j>0 && arr<arr; j--)
                {
                        temp = arr;
                        arr = arr;
                        arr = temp;
                }
      }
}

为啥插入排序可以把循环和条件合并起来写呢,有啥区别
页: [1]
查看完整版本: 冒泡排序