一、排序算法分类
常见的排序算法有七种:
二、冒泡排序
1、普通冒泡排序
思想:每次从最后(即最下面)开始迭代,第i次迭代使从i~end中最小的数冒泡到i的位置,从而实现排序。
实现代码:
void bubbleSort(int arr[], int length) //从小到大排,每次将最小的冒泡到最前面 { int i,j; int temp; for(i = 0; i < length-1; i++) { for(j = length-1; j > i; j--) { if( arr[j-1] > arr[j] ) { temp = arr[j-1]; arr[j-1] = arr[j]; arr[j] = temp; } } } }
2、改进冒泡排序
改进最简单的办法就是立一个flag。
实现代码:
void bubbleSort(int arr[], int length) //从小到大排,每次将最小的冒泡到最前面 { int i,j; int temp; int flag = 1; for(i = 0; i < length-1 && flag; i++) { flag = 0; for(j = length-1; j > i; j--) { if( arr[j-1] > arr[j] ) { temp = arr[j-1]; arr[j-1] = arr[j]; arr[j] = temp; flag = 1; //如果有数据交换,则flag为true } } } }