Skip to content

Commit

Permalink
更新快速排序
Browse files Browse the repository at this point in the history
  • Loading branch information
huihut committed Feb 10, 2018
1 parent a7a6e38 commit 4667db6
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 1 deletion.
29 changes: 29 additions & 0 deletions Algorithm/QuickSort.h
Original file line number Diff line number Diff line change
@@ -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);
}
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@

* [冒泡排序](Algorithm/BubbleSort.h)
* [冒泡排序(改进版)](Algorithm/BubbleSort_orderly.h)
* [选择排序](Algorithm/BubbleSort_orderly.h)
* [选择排序](Algorithm/SelectionSort.h)
* [快速排序](Algorithm/QuickSort.h)


## Problems

Expand Down

0 comments on commit 4667db6

Please sign in to comment.