冒泡排序(日志13)
作用:最常用的排序算法,对数组内元素进行排序
步骤(升序):
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
示例:
待排序数组:4 2 8 0 5 7 1 3 9
#include <iostream> using namespace std; int main() { int a[9] = { 4,2,8,0,5,7,1,3,9 }; for(int i=0;i<9-1;i++) { for(int j=0;j<9-i-1;j++) { if(a[j]>a[j+1]) { int temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } for(int i=0;i<9;i++) { cout << a[i]<<" "; } return 0; }
注意:
(外层循环)排序总轮数=元素个数-1;
(内层循环)每轮对比次数=元素个数-排序轮数-1;