1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #include <iostream>
- //冒泡排序:最常用的排序算法,对数组内元素进行排序
- //1、比较相邻的元素,如果第一个比第二个大,就交换他们两个
- //2、对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值
- //3、重复以上步骤,每次比较次数-1,直到不需要比较
- //实例:将数组{ 4,2,8,0,5,7,1,3,9 }
- int main4()
- {
- //利用冒泡排序实现升序序列
- int arr[9] = { 4,2,8,0,5,7,1,3,9 };
- std::cout << "排序前:" << std::endl;
- for (int i = 0; i < 9; i++)
- {
- std::cout <<arr[i] <<"";
- }
- std::cout << std::endl;
-
- //开始排序
- //排序的总轮数 = 元素个数 - 1;
- //每轮对比次数 = 元素个数 - 排序轮数 -1;
- for (int i = 0; i < 9 - 1; i++)
- {
- //内层循环对比 次数 = 元素个数 - 当前轮数 -1
- for (int j = 0; j < 9 - i - 1; j++)
- {
- //如果第一个数字比第二个数字大,交换这两个数字
- if(arr[j]>arr[j+1])
- {
- int temp = arr[j];
- arr[j] = arr[j+1];
- arr[j + 1] = temp;
- }
-
- }
- }
- //排序后结果
- std::cout << "排序后:" << std::endl;
- for (int i = 0; i < 9; i++)
- {
- std::cout << arr[i] << "";
- }
- std::cout << std::endl;
- system("pause");
- return 0;
- }
|