- #include <iostream>
- using namespace std;
- //快速排序
- void quick_sort(int s[], int l, int r)
- {
- if (l < r)
- {
- //Swap(s[l], s[(l + r) / 2]); //将中间的这个数和第一个数交换 参见注1
- int i = l, j = r, x = s[l];
- while (i < j)
- {
- while(i < j && s[j] >= x) // 从右向左找第一个小于x的数
- j--;
- if(i < j)
- s[i++] = s[j];
- while(i < j && s[i] < x) // 从左向右找第一个大于等于x的数
- i++;
- if(i < j)
- s[j--] = s[i];
- }
- s[i] = x;
- quick_sort(s, l, i - 1); // 递归调用
- quick_sort(s, i + 1, r);
- }
- }
- int main() {
- int array[9] = {5,6,8,7,9,1,2,3,0};
- quick_sort(array,0,8);
- for (int i=0;i<9;i++) {
- cout<<" "<<array[i];
- }
- return 0;
- }
快速排序
最新推荐文章于 2023-12-01 23:14:38 发布