// 冒泡排序 void BuddleSort(int array[], int n) { int i, j; bool flag = true; for (i = 1; flag && i < n; i++) { flag = false; for (j = 0; j < n - i; j++) { if (array[j] > array[ j + 1]) { flag = true; int temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } } // 选择法 void SelectSort(int array[], int n) { int i, j, k; for (i = 0; i < n; i++) { k = i; for (j = i + 1; j < n; j++) { if (array[j] < array[k]) { k = j; } } if (k != i) { int temp = array[k]; array[k] = array[i]; array[i] = temp; } } } // 插入排序 void InsertSort(int array[], int n) { int i, j, temp; for (i = 1; i < n; i++) { temp = array[i]; j = i - 1; while (j >= 0 && array[j] > temp) { array[j + 1] = array[j]; j--; } array[j + 1] = temp; } } // 快速排序 void QSort(int array[], int l, int r) { int i = l, j = r; int temp = array[l]; while (i < j) { while (i < j && temp < array[j]) { j--; } if (i < j) { array[i] = array[j]; i++; } while (i < j && temp > array[i]) { i++; } if (i < j) { array[j] = array[i]; j--; } array[i] = temp; } if (l < i) { QSort(array, l, i - 1); } if (j < r) { QSort(array, j + 1, r); } } // 希尔排序 void ShellSort(int array[], int n) { int i, j, d = n; while (d != 1) { d = (d + 1) / 2; for (i = d; i < n; i++) { int temp = array[i]; j = i - d; while (j >= 0 && array[j] > temp) { array[j + d] = array[j]; j -= d; } array[j + d] = temp; } } } // 堆排序 void AdjustHeap(int array[], int i, int n) { int j = 2 * i, temp; while (j <= n) { if (j < n && array[j - 1] < array[j]) { j += 1; } if (array[i - 1] < array[j - 1]) { temp = array[i - 1]; array[i - 1] = array[j - 1]; arra...