快速排序_算法基本思想及实现
来源:互联网 发布:java h5微信支付视频 编辑:程序博客网 时间:2024/04/23 18:21
基本思想:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。时间复杂度nlogn,每次通过递归调用将序列一分为二,若n=8,log(8)=3次,每次都是从两边向中间靠拢,平均需要n*logn.
#include<iostream>using namespace std;int num[30];void qsort(int left,int right){ if(left>=right) return ; int key=num[left];//基准 int low=left; int high=right; while(low<high) { while(low<high&&num[high]>key)//从后寻找小于基准的第一个数 { high--; } num[low]=num[high];//更新 while(low<high&&num[low]<key)//从前寻找大于基准的第一个数 { low++; } num[high]=num[low];//更新 } num[low]=key; qsort(left,low-1);//递归调用 qsort(low+1,right);}int main(){ int n; cin>>n; for(int i=0;i<n;i++) { cin>>num[i]; } qsort(0,n-1); for(int i=0;i<n;i++) { cout<<num[i]<<" "; } return 0;}
阅读全文
0 0
- 快速排序_算法基本思想及实现
- 快速排序(基本思想以及算法实现)
- 快速排序算法思想及实现
- 快速排序的基本思想及Java实现
- 八大经典排序算法基本思想及代码实现(插入排序,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序,基数排序)
- 快速排序思想及实现
- 快速排序算法思想及C语言实现
- 部分排序算法的基本思想及用python3 实现
- 快速排序基本思想以及代码实现
- 基本排序_快速排序_Java实现
- 快速排序思想及其算法实现
- 堆排序(基本思想以及算法实现)
- 归并排序(基本思想以及算法实现)
- 选择排序基本思想及实现
- 快速排序算法思想
- 快速排序算法思想
- 快速排序算法思想
- 快速排序算法及实现
- [转载]【FFmpeg】FFmpeg常用基本命令
- SSM框架搭建
- tensorflow No graph definition files were found
- github—如何在README.md文件中添加图片
- Leetcode-Add Two Numbers
- 快速排序_算法基本思想及实现
- 练习5
- 4种方法让SpringMVC接收多个对象
- 基础知识掌握的好不好,Java基础2道题,Oracle五道题,能不打哏就做出来的请举手
- 科大讯飞“争吵”问题
- GCC编译选项
- Andoird 自定义ViewGroup实现竖向Viewpager
- Manacher's Algorithm ----马拉车算法(【USACO题库】1.3.3 Calf Flac)
- Java中测试数据库连接