时间复杂度:O(n*logn)
public static void quickSort(int[] nums,int m,int n){
if(m<n){
int i = split(nums,m,n);//找到经过一次划分后KEY的位置
quickSort(nums,m,i-1);//对KEY左边再次划分为两部分
quickSort(nums,i+1,n);//对KEY右边再次划分
}
}
public static int split(int[] nums,int m,int n){
int right,left,key;
left = m;
right =n;
key = nums[left];
while(left < right){
//从最右边开始扫描 如果找不到比key小的 就一直往左找
while((left<right)&&(nums[right]>key)){
right--;
}
//找到比KEY小的,跳出循环,交换高低位的值
nums[left] = nums[right];
//从左边开始扫描 如果找不到比key大的 就一直往右找
while((left<right)&&(nums[left]<key)){
left++;
}
//找到比KEY大的,跳出循环,交换高低位的值
nums[right] = nums[left];
}
nums[left] = key;//一次划分结束后把KEY复制给LEFT = RIGHT位置,左边的都比KEY小,右边的都比KEY大
return left;
}
分享到:
相关推荐
详细解释了快速排序的java实现.里面有代码,还有注释说明
java实现的快速排序,有详细的注释,可以下载下来运行查看的哈
简单实用的快速排序代码,有注释
冒泡排序 简单选择排序 直接插入排序 希尔排序 归并排序 快速排序等排序方法,使用java详细代码 附注释,清晰明白
Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...
分治思想的排序包括:归并排序,快速排序,堆排序。 程序把随机生成的整数进行排序,开始时用1到7选择用哪种排序(没有图形界面,算法为主),堆排序较为特殊,见注释。 有问题到博客中该篇文章下欢迎反馈交流~
六个基础排序算法,分别是冒泡排序,选择排序,插入排序,希尔排序,归并排序和快速排序;2.了解这六种算法的时间复杂度和稳定性; 阅读建议:建议在阅读过程中,可以尽量自己手动敲一遍,让印象更深刻,不要Ctrl+C...
主要介绍了Java基于分治法实现的快速排序算法,结合实例形式分析了java基于分治法的快速排序相关实现技巧,代码中备有较为详细的注释说明便于理解,需要的朋友可以参考下
这里包含了使用java语言的几大排序算法包括:插入排序、冒泡排序、归并排序、基数排序、希尔排序、快速排序、基数排序、选择排序。 jdk版本1.8 打开方式:解压后打开eclipse直接导入项目即可查看和运行代码。方便...
各种排序算法,全Java实现。直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,选择排序,桶排序···全是Java的简易的小Demo,注释清晰。
这里提供了冒泡排序,插入排序,递归排序,基数排序,快速排序,选择排序,希尔排序这几种排序算法。里面有大量的注释,可以理解实现思路
几种常见的排序算法包括冒泡排序、选择排序、插入排序、快速排序的Java代码实现,有注释,容易理解。下载下来之后换一下包路径即可,欢迎留言评论
八大排序java实现源代码,有非常完整的注释,非常适合初学者。...八大排序:冒泡排序、插入排序、选择排序、归并排序、堆排序、快速排序、希尔排序和基数排序。真的是非常完整的资料。工程直接导入eclipse即可。
自己动手写的数据结构算法,希望能帮到大家。几乎每一句都有注释
Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...
包括常见的 堆排序,快速排序,归并排序,希尔排序,冒泡排序,二分法插入排序等等。。。 完整源代码,含注释。
一个快速排序算法代码一个快速排序算法代码,代码内有注释,大家参考使用吧
java代码实现的排序算法(冒泡,快速,简单选择,堆排,直接插入,希尔,归并),代码本身的注释不多,主要注释的还是当前排序算法的一些特点,比如时间复杂度,空间复杂度,一趟排序后数列的特点。适合了解算法性质...
Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...
该代码只要下载便可以使用,里面有大量的注释,非常的简单易懂,是学习java和排序的很好的代码。不可多得的资料,自己编写的