C++实例教程之C++经典案例

2、冒泡排序

作用: 最常用的排序算法,对数组内元素进行排序

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。
  3. 重复以上的步骤,每次比较次数-1,直到不需要比较
    #include<iostream>
    using namespace std;
    
    int main()
    {
        int arr[] = {1,3,0,2,4,6,9,7,8,5};
        //冒泡排序前数组为
        cout << "冒泡排序前数组为:" << endl;
        for (int i = 0; i < sizeof(arr) / sizeof(arr[0]) ; i++)
        {
            cout << arr[i] << " ";
        }
        cout << endl;
    
        //冒泡排序开始,外部循环次数 = 排序总轮数 = 元素个数  - 1
        for(int i = 0; i < sizeof(arr) / sizeof(arr[0]) - 1; i++)
        {
            //内部循环次数 = 每轮对比次数 = 元素个数 -排序轮数 - 1
            for(int j = 0 ; j < sizeof(arr) / sizeof(arr[0]) - i - 1 ; j++)
            {
                //比较相邻的元素。如果第一个比第二个大,就交换他们两个
                if (arr[j] > arr[j + 1])
                {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        } //冒泡结束
    
        cout << "冒泡排序后数组为:" << endl;
        for (int i = 0; i < sizeof(arr) / sizeof(arr[0]) ; i++)
        {
            cout << arr[i] << " ";
        }
        cout << endl;
        
        system("pause");
    
        return 0;
    
    }
    
0.056576s