快速排序之C++实现
2017-05-22 15:18
204 查看
快速排序是排序算法的王者,其实是冒泡排序的升级版本。它的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录进行排序。时间复杂度为O(nlogn)。
代码实现如下:
代码实现如下:
#include #include using namespace std; int Partition(vector &nums,int start,int end) { int index=start; //此处可以选择其它值,不同的情况有不同的选择 int temp=nums[index]; for(int i=start+1,j=end;index!=j;) { if(nums[i]<=temp) { swap(nums[i],nums[index]); index=i; i++; } else { swap(nums[i],nums[j]); j--; } } return index; } void QuickSort(vector &nums,int start,int end) { if(start==end) return; int mid=Partition(nums,start,end); if(mid>start) QuickSort(nums,start,mid-1); if(mid nums={9,5,4,1,7,6,3,2,8}; QuickSort(nums,0,nums.size()-1); for(auto c:nums) cout<
相关文章推荐
- 霍尔快速排序 非递归 C++实现
- 快速排序c++实现
- 【排序】快速排序C++实现总结
- 快速排序的c++实现 和 python 实现
- 排序算法(1) 快速排序 C++实现
- 直接查找排序,归并排序,快速排序,计数排序 ,堆排 C++实现
- 快速排序的c++实现
- C++ 快速排序 递归实现
- 快速排序之所有的c/c++的实现
- 快速排序-c++(分别用数组和容器实现)
- C/C++面试题(三) 推断二叉树、快速排序递归实现、递归判断数组递增
- C/C++面试题(三) 推断二叉树、快速排序递归实现、递归判断数组递增
- C++ 快速排序QuickSort的实现
- C++实现快速冒泡排序
- 交换排序——冒泡排序和快速排序,C++代码实现
- 利用随机化快速排序求带权中位数C++实现
- C++学习 - 快速排序,更加优化的实现
- 快速排序C++实现
- 快速排序——C++实现
- 排序算法的C++实现与性能分析(插入排序、归并排序、快速排序、STOOGE排序、堆排序)