排序算法
冒泡排序:
void bublle_sort(int s[], int n) { int i, j, temp; for (i = 0; i < n; i++) { for (j = 0; j < n -i; j++) { if (s[j+1] < s[j]) { temp = s[j]; s[j] = s[j+1]; s[j+1] = temp; } } } }
插入排序:
void insert_sort(int s[], int n) { int i,j,temp; for (i = 1; i <= n; i++) { temp = s[i]; for (j = i-1; j >= 0 && s[j] > temp; j--) { s[j+1] = s[j]; } s[j+1] = temp; } }
选择排序:
void select_sort(int s[], int n) { int i,j,min,temp; for (i = 0; i < n; i++) { min = i; for (j = i+1; j <= n; j++) { if (s[j] < s[min]) { min = j; } } if (min != i) { temp = s[min]; s[min] = s[i]; s[i] = temp; } } }
快速排序:
int partition(int s[], int le, int ri) { int i = le, j = ri; int temp = s[le]; while (i<j) { while(j > i && s[j] >= temp) j--; s[i] = s[j]; while(i < j && s[i] <= temp) i++; s[j] = s[i]; } s[i] = temp; return i; } void quick_sort(int s[], int le, int ri) { if (le < ri) { int q = partition(s,le,ri); quick_sort(s,le,q-1); quick_sort(s,q+1,ri); } }