冒泡排序:
bool BubbleSort(int arr[],int len) { if(arr == NULL || len <= 0) { return false; } int i,j,temp; int flag = 1; for(i = 0; i < len -1 && flag; i++)//注意:i < len-1 而不是len { flag = 0;//flag标志可以提前结束循环 for(j = 0; j < len-1-i; j++) { if(arr[j] > arr[j+1])//大的数通过交换"冒泡"到后面 { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; flag = 1; } } } return true; }
bool SelectionSort(int arr[],int len) { if(arr == NULL || len <= 0) { return false; } int i,j,temp,min; for(i = 0; i < len; i++) { min = i;//min用来记录最小的数的下标 for(j = i+1; j< len; j++) { if(arr[min] > arr[j]) { min = j; } } if(min != i) {//选取最小的数与第i个元素交换 temp = arr[i]; arr[i] = arr[min]; arr[min] = temp; } } return true; }
原文地址:http://blog.csdn.net/chdjj/article/details/37872921