博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 算法基础之二快速排序算法
阅读量:5997 次
发布时间:2019-06-20

本文共 1260 字,大约阅读时间需要 4 分钟。

http://www.cnblogs.com/hexiaochun/archive/2012/09/03/2668324.html

所谓的快速排序的思想就是,首先把数组的第一个数拿出来做为一个key,在前后分别设置一个i,j做为标识,然后拿这个key对这个数组从后面往前遍历,及j--,直到找到第一个小于这个key的那个数,然后交换这两个值,交换完成后,我们拿着这个key要从i往后遍历了,及i++;一直循环到i=j结束,当这里结束后,我们会发现大于这个key的值都会跑到这个key的后面,不是的话就可能你写错了,小于这个key的就会跑到这个值的前面;然后我们对这个分段的数组再时行递归调用就可以完成整个数组的排序。

用图形法表示由下:

这样就以key分为了两个段,我们把这两个段再递进去就可以解决问题了

实现代码由下:

1 package com.quick; 2  3 public class quick { 4     public void quick_sort(int[] arrays, int lenght) { 5         if (null == arrays || lenght < 1) { 6             System.out.println("input error!"); 7             return; 8         } 9         _quick_sort(arrays, 0, lenght - 1);10     }11 12     public void _quick_sort(int[] arrays, int start, int end) {13         if(start>=end){14             return;15         }16         17         int i = start;18         int j = end;19         int value = arrays[i];20         boolean flag = true;21         while (i != j) {22             if (flag) {23                 if (value > arrays[j]) {24                     swap(arrays, i, j);25                     flag=false;26 27                 } else {28                     j--;29                 }30             }else{31                 if(value
找一个博客做自己的女朋友,不管你跟她说什么她都帮你记录,这是多么幸福的一件事啊。如果有女生能做到这点,赶尽娶回家吧!
分类: 
你可能感兴趣的文章
DES加密解密
查看>>
2017年1月15日,开始认真读书!!!
查看>>
oracle TNS-12549: TNS:operating system resource quota exceeded
查看>>
css背景图片位置:background的position(转)
查看>>
【总结整理】webstorm插件使用
查看>>
微服务(二)hystrix
查看>>
git for windows
查看>>
浅谈oracle中for update 和 for update nowait 和 for update wait x的区别
查看>>
DOS与内存
查看>>
[Micropython]发光二极管制作炫彩跑马灯
查看>>
jQuery获取Select选择的Text和 Value(转)
查看>>
C# System.IO.Path
查看>>
[基准测试]----lmbench
查看>>
Core源码(一) ConcurrentDictionary
查看>>
Mysql锁机制--写锁
查看>>
VO、DTO、DO、PO
查看>>
Java知多少(51)finally
查看>>
HNUSTOJ-1258 Time
查看>>
bzoj1061 1283
查看>>
oscached
查看>>