快速排序
来源:互联网 发布:了解算法看哪本书 编辑:程序博客网 时间:2024/06/15 12:33
快读排序采用的是分治的思想。
快速排序是找出一个元素作为基准值pivot,然后对数组进行分区操作,使得基准值左边的元素不大于基准值,基准值右边的元素不小于基准值。
基准值:pivot
i:左下标
j:右下标
算法:1.从右往左扫描,找到第一个比基准值小的值,二者进行交换
2.从左往右扫描,找到第一个比基准值大的值,二者进行交换
3.当i-start>1时,递归调用,quickSort(a,0,i-1)
4.当end-j>1时,递归调用,quickSort(a,j+1,end)
java程序如下:
public void quickSort(int []a,int start,int end){ int i,j; i=start; j=end; while(i<j){ while(i<j&&a[i]<=a[j]) j--; if(i<j){ int temp=a[i]; a[i]=a[j]; a[j]=temp; } while(i<j&&a[i]<a[j]) i++; if(i<j){ int temp=a[i]; a[i]=a[j]; a[j]=temp; } } if(i-start>1){ quickSort(a,start,i-1); } if(end-j>1){ quickSort(a,j+1,end); }}
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- xp下堆溢出DWORD SHOOT---狙击空闲表
- poj2031Building a Space Station(几何+最小生成树)
- Ant Counting(多重集组合数)
- 别人的远方
- 走遍世界 —— 国旗上的国家历史
- 快速排序
- HDU 5861
- QWidget、QMainWindow、QDialog区别
- vs常用快捷键
- 三家人
- 【机器学习实战05】PCA降维算法
- 屏蔽输入法
- REDIS安装配置
- poj 2115 C Looooops(扩展欧几里德)