typedef int ELemType; // 冒泡排序 void bubbleSort(ELemType arr[], int len) { int i, j, temp; for (i = 1; i < len; i++) { for (j = 0; j < len - i; j++) { if (arr[j] > arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } // 插入排序 void insertSort(ELemType arr[], int len) { int i, j, temp; for (i = 1; i < len; i++) { temp = arr[i]; for (j = i - 1; j >= 0 && arr[j] > temp; j--) arr[j + 1] = arr[j]; arr[j + 1] = temp; } } // 选择排序 void selectSort(ELemType arr[], int len) { int i, j, temp; for (i = 0; i < len; i++) { for (j = i + 1; j < len; j++) { if (arr[i] > arr[j]) { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } } // 归并排序 void mergeSort(ELemType arr[], int start, int end, int temp[]) { if (start >= end) return; int mid = (start + end) / 2; int i = start, j = mid + 1; int index = 0; mergeSort(arr, start, mid, temp); mergeSort(arr, mid + 1, end, temp); while (i <= mid && j <= end) { if (arr[i] >= arr[j]) { temp[index] = arr[j]; j++; } else { temp[index] = arr[i]; i++; } index++; } while (i <= mid) { temp[index] = arr[i]; i++; index++; } while (j <= end) { temp[index] = arr[j]; j++; index++; } for (i = start, j = 0; i <= end; i++, j++) arr[i] = temp[j]; } // 快速排序 void quicklySort(ELemType arr[], int start, int end) { int base = arr[(start + end) / 2]; int i = start, j = end, temp; if (start >= end) return; while (i <= j) { while (base > arr[i]) i++; while (base < arr[j]) j--; if (i <= j) { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; i++; j--; } } quicklySort(arr, start, j); quicklySort(arr, i, end); }
原文:https://www.cnblogs.com/li1234567980/p/13507150.html