快速排序-转自java数据结构与算法
来源:互联网 发布:淘宝导航条的尺寸 编辑:程序博客网 时间:2024/04/28 11:21
package cn.ccnu.lzc;import java.util.Random;public class QuickSort {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint maxSize=16;ArrayIns arr=new ArrayIns(maxSize);for(int i=0;i<maxSize;i++){int n=new Random().nextInt(100);arr.insert(n);}arr.display();arr.quickSort();arr.display();}}class ArrayIns{private int[] theArray;private int nElems;//初始化数组public ArrayIns(int max){this.theArray=new int[max];this.nElems=0;}//向数组中插入数据public void insert(int value){theArray[nElems++]=value;}//打印数组public void display(){for(int i:theArray){System.out.print(i+" ");}System.out.println();}//快速排序,选取数组最后一个为关键字public void quickSort(){recQuickSort(0,nElems-1);}public void recQuickSort(int left,int right){if(left>=right){return;}int pivot=theArray[right];int partition=partitionIt(left,right,pivot);recQuickSort(left,partition-1);recQuickSort(partition+1,right);}//求得最终关键字的位置private int partitionIt(int left,int right,int pivot){int leftptr=left-1;int rightptr=right;while(true){while(theArray[++leftptr]<pivot);//这里不需要进行越界检测,因为leftptr最后不可能越过关键字while(rightptr>0&&theArray[--rightptr]>pivot);if(leftptr>=rightptr){break;}else{swap(leftptr,rightptr);}}swap(leftptr,right);return leftptr;}private void swap(int leftptr, int rightptr) {// TODO Auto-generated method stubint temp=theArray[leftptr];theArray[leftptr]=theArray[rightptr];theArray[rightptr]=temp;}}
0 0
- 快速排序-转自java数据结构与算法
- java数据结构与算法-高级排序-快速排序
- 数据结构与算法-快速排序
- 【数据结构与算法】快速排序
- [数据结构与算法]快速排序
- 数据结构与算法:快速排序
- 数据结构与算法-快速排序
- 数据结构与算法-----快速排序
- [数据结构与算法]快速排序
- 【数据结构与算法】快速排序
- 数据结构与算法--快速排序
- 数据结构与算法-快速排序算法(java实现)
- 快速排序 (QuickSort) Java数据结构与算法
- 快速排序 优化 (QuickSort)Java数据结构与算法
- Java数据结构与算法分析《九》快速排序
- 数据结构与算法(7)---Java语言实现:快速排序
- 希尔排序-转自java数据结构和算法
- 数据结构与算法之快速排序
- jQuery中需要注意的细节问题小结 详细出处参考:http://www.jb51.net/article/29076.htm
- HTML中设置输入框为只读与不可编辑的区别
- 动态内存申请函数选择(realloc、malloc 、alloca、 calloc)
- 使用JDBC开发Hive程序依赖的jar包
- ios7开发错误搜集
- 快速排序-转自java数据结构与算法
- MySQL slave状态之Seconds_Behind_Master
- 大型网站架构演化
- Ubuntu .profile环境变量汇总
- MATLAB/C++学习资料,电子书,教学视频汇总
- 使用SIGALRM信号量和sleep冲突的解决办法
- C++习题 对象数组求最大值
- JSON和JSONP
- java集合类底层原理