基本排序算法
bubbleSort
关键点:一轮能够确定一个数,内层循环有:a[j]>a[j+1],保证a[j+1]不溢出,第一轮循环需要从i=1开始,内层循环从j=0开始,j<n-i
1 2 3 4 5 6 7 8 9 10 11 12
   | void BubbleSort(int a[], int n) {//冒泡排序,a为数据数组, n为数组元素个数 	int tmp; 	for (int i = 1; i < n; ++i) { 		for (int j = 0; j < n - i; ++j) { 			if (a[j] > a[j + 1]) {//前一个元素大于后一个元素 				tmp = a[j]; 				a[j] = a[j + 1]; 				a[j + 1] = tmp; 			} 		} 	} }
  | 
 
selectSort
关键点:与bubble刚好相反,它是从前往后排,所以关键在内层循环的int j=i开始点,而冒泡则是内层循环的j<n-i结束的点
1 2 3 4 5 6 7 8 9 10 11 12 13 14
   | void selectSort(int a[], int n) {//选择排序 	for (int i = 0; i < n; ++i) { 		int m = i; 		for (int j = i; j < n; ++j ) { 			if (a[m] > a[j]) { 				m = j; 			} 		} 		int tmp = a[i]; 		a[i] = a[m]; 		a[m] = tmp; 	} }
 
  |