void qqsort(vector<int>& a, int left, int right) { if (left>= right) { return; } int p = left; int l = left; int r = right; while (l < r) { while (r > l && a[r] >= a[p]) { r--; } while (l < r && a[l] <= a[p]) { l++; } if (l < r) { swap(a[l], a[r]); } } swap(a[p], a[l]); p = l; qqsort(a, left, p - 1); qqsort(a, p + 1, right); } vector<int> myquickSort(vector<int>& a) { qqsort(a, 0, a.size() - 1); return a; }
时间: 2024-04-25 13:27:46 浏览: 13
C++中的Qsort
这段代码是一个快速排序算法的实现,它使用了递归方式对一个整数数组进行排序。在快速排序算法中,首先选定一个基准元素(这里选定的是数组的第一个元素),然后将数组中所有小于它的元素移到它的左边,所有大于它的元素移到它的右边,最后将基准元素放到它的最终位置。然后对左右两个子数组分别递归进行相同的操作,直到整个数组有序为止。
阅读全文