快速排序
2015-09-14 10:23
351 查看
嘿嘿,开始复习数据结构啦!从排序开始,首先来个快排!
快速排序:1.先找到一个中轴
2.将比中轴大的移到中轴的右边
3.将比中轴小的移到中轴的左边
主要代码如下:
以上代码也有参考别人的成分,不过自己已经明白!我贴出测试代码和打印的数据,希望对自己和你们有帮助!按着程序走一遍其实就懂了!算法的话最主要还是理解其真理最佳!
以下是测试代码:
博客写的可能比较乱,还请高人指点啊!
快速排序:1.先找到一个中轴
2.将比中轴大的移到中轴的右边
3.将比中轴小的移到中轴的左边
主要代码如下:
//找中轴 public static int getMiddle(int[] list,int low,int high){ int temp = list[low]; //假设第一个数是中轴 while(low < high){ while(low < high && list[high] > temp){ //如果轴右面的比轴大就不动 high--; } list[low] = list[high]; //如果轴右面的比轴小就将该数移到低端 for(int i = 0;i<list.length;i++){ System.out.print(list[i] + " "); } System.out.println(); while(low < high && list[low] < temp){ low++; } list[high] = list[low]; for(int i = 0;i<list.length;i++){ System.out.print(list[i] + " "); } System.out.println(); } list[low] = temp; for(int i = 0;i<list.length;i++){ System.out.print(list[i] + " "); } System.out.println(); System.out.println(); System.out.println(low); System.out.println(); System.out.println(); return low; } //快速排序 public static void quickSort(int[] list,int low,int high){ if(low < high){ int middle = getMiddle(list,low,high); quickSort(list,low,middle-1); quickSort(list,middle+1,high); } }
以上代码也有参考别人的成分,不过自己已经明白!我贴出测试代码和打印的数据,希望对自己和你们有帮助!按着程序走一遍其实就懂了!算法的话最主要还是理解其真理最佳!
以下是测试代码:
public static void main(String[] args){ int[] list = new int[]{2,5,1,6,9,0}; quickSort(list,0,list.length-1); for(int i=0;i<list.length;i++){ System.out.print(list[i] + " "); } }接下来是打印结果:
博客写的可能比较乱,还请高人指点啊!
相关文章推荐
- 大数据之tachyon(未完版)
- iOS开发UI篇—transframe属性(形变)
- Eclipse中创建Maven工程并打包(HelloWorld)
- 显示win32控制台
- maven 工程学习
- iOS view的抗拉伸和抗压缩属性
- 20150905-Linux上的任务计划
- web_custom_request 例子
- 如果浏览器不支持 cookie 该怎么办?
- word 文档结构图 字体样式改变,保证有用
- 【面试】-百度外卖后端开发工程师
- How Filters Work on Google Play
- OS开发UI基础—手写控件,frame,center和bounds属性
- iOS开发UI篇—Button基础
- iOS学习笔记:instancetype关联返回类型
- Android之Json转换利器Gson之实例一-简单对象转化和带泛型的List转化
- ViewPager与SwipeRefreshLayout冲突问题
- MNIST手写字体结构
- Java Source Attacher 1.2 发布
- Android控件之CheckBox、RadioButton用法实例分析