1、冒泡排序
typedef enum Status{ TRUE=1, FALSE=0 }Status; /* n个元素,执行n-1轮,每一轮确定一个最大或最小值 每一轮执行多少次? 第一轮:n-1次 第二轮:n-2次 …… 第i轮:n-i次 */ void bubbleSort(int * arr,int n) { int temp,i; Status flag; for (i=1,flag = TRUE; i<n && flag; ++i) { flag = FALSE; for (int j=0; j<n-i; ++j) { if (arr[j] > arr[j+1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; flag = TRUE; } } } }
2、选择排序
void selectSort(int *arr, int n) { //升序排列 int min,value; for (int i=0; i<n-1; ++i) { min = i; for (int j=i+1; j<n; ++j) { if (arr[min]>arr[j]) { min=j; } } if (min != i) { value = arr[min]; arr[min] = arr[i]; arr[i]=value; } } }
3、插入排序
void insertSort(int * arr,int n) { int temp; for (int i=1; i<n; ++i) { int j=i-1; temp = arr[i]; while (temp<arr[j] && j>=0) { arr[j+1]=arr[j]; j--; } arr[j+1] = temp; } }