mirror of
https://github.com/huihut/interview.git
synced 2024-03-22 13:10:48 +08:00
更新快速排序
This commit is contained in:
parent
a7a6e38cac
commit
4667db6985
29
Algorithm/QuickSort.h
Normal file
29
Algorithm/QuickSort.h
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
// 快速排序
|
||||||
|
void QuickSort(vector<int>& v, int low, int high) {
|
||||||
|
if (low >= high) // 结束标志
|
||||||
|
return;
|
||||||
|
int first = low; // 低位下标
|
||||||
|
int last = high; // 高位下标
|
||||||
|
float key = v[first]; // 设第一个为基准
|
||||||
|
|
||||||
|
while (first < last)
|
||||||
|
{
|
||||||
|
// 将比第一个小的移到前面
|
||||||
|
while (first < last && v[last] >= key)
|
||||||
|
last--;
|
||||||
|
if (first < last)
|
||||||
|
v[first++] = v[last];
|
||||||
|
|
||||||
|
// 将比第一个大的移到后面
|
||||||
|
while (first < last && v[first] <= key)
|
||||||
|
first++;
|
||||||
|
if (first < last)
|
||||||
|
v[last--] = v[first];
|
||||||
|
}
|
||||||
|
// 基准置位
|
||||||
|
v[first] = key;
|
||||||
|
// 前半递归
|
||||||
|
QuickSort(v, low, first - 1);
|
||||||
|
// 后半递归
|
||||||
|
QuickSort(v, first + 1, high);
|
||||||
|
}
|
@ -44,7 +44,9 @@
|
|||||||
|
|
||||||
* [冒泡排序](Algorithm/BubbleSort.h)
|
* [冒泡排序](Algorithm/BubbleSort.h)
|
||||||
* [冒泡排序(改进版)](Algorithm/BubbleSort_orderly.h)
|
* [冒泡排序(改进版)](Algorithm/BubbleSort_orderly.h)
|
||||||
* [选择排序](Algorithm/BubbleSort_orderly.h)
|
* [选择排序](Algorithm/SelectionSort.h)
|
||||||
|
* [快速排序](Algorithm/QuickSort.h)
|
||||||
|
|
||||||
|
|
||||||
## Problems
|
## Problems
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user