查找-排序算法
DS中的查找与排序算法
查找
二分查找
1 | int binarySearch(int l[], int n, int key) |
排序
插入排序
- 时间复杂度
- 最好:
- 平均:
- 最差:
- 空间复杂度:
- 稳定性: 是
1 | void insertSort(int A[], int n) |
冒泡排序
- 时间复杂度
- 最好:
- 平均:
- 最差:
- 空间复杂度:
- 稳定性: 是
1 | void bubbleSort(int A[], int n) |
选择排序
- 时间复杂度
- 最好:
- 平均:
- 最差:
- 空间复杂度:
- 稳定性: 否
1 | void selectSort(int A[], int n) |
快速排序
- 时间复杂度
- 最好:
- 平均:
- 最差:
- 空间复杂度:
- 稳定性: 否
1 | int partition(int A[], int low, int high) |
1 | void quickSort(int A[], int low, int high) |
堆排序
- 时间复杂度
- 最好:
- 平均:
- 最差:
- 空间复杂度:
- 稳定性: 否
1 | void adjustDown(int A[], int k, int n) |
1 | void adjustUp(int A[], int k) |
1 | void buildMaxHeap(int A[], int n) |
1 | void heapSort(int A[], int n) |
归并排序
- 时间复杂度
- 最好:
- 平均:
- 最差:
- 空间复杂度:
- 稳定性: 是
1 | void merge(int A[], int low, int mid, int high) |
1 | void mergeSort(int A[], int low, int high) |