时间复杂度: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版)"中,我们可以期待看到以下关键知识点: 1. **分治策略**:快速排序的核心在于将大问题分解为小问题来解决。在Java代码中,会有一个主函数作为入口,调用递归函数来执行排序过程。 ...
快速排序法是一种高效的排序算法,广泛应用于计算机科学领域。...在Java中实现快速排序法需要对Java编程语言有一定深度的了解,同时也要熟悉算法和数据结构的相关知识,这样才能够编写出高效且可读性好的快速排序实现。
java实现的快速排序,有详细的注释,可以下载下来运行查看的哈
- **方法注释快捷键**:IDEs如Eclipse或IntelliJ IDEA提供了注释生成快捷键,如`/**`+回车键,自动插入方法的Javadoc模板,便于快速添加注释。 #### 四、代码组织策略 - **变量排序**:按照访问级别从高到低排序,...
本资源包含的是Java实现的各种常见排序算法的代码示例,每个算法都有详细的注释,方便初学者理解和学习。 1. **冒泡排序**:这是一种基础的排序算法,通过不断交换相邻的逆序元素来逐渐把较大的元素推向数组的后部...
在编程领域,排序算法是计算机科学中的基础概念,它们用于整理数据序列,使...在实际开发中,可能会使用更高效的排序算法,如快速排序、归并排序或堆排序等,但了解并能实现选择排序对理解排序算法的工作原理至关重要。
这篇实验报告将深入探讨两种经典的排序算法——快速排序和归并排序,通过对它们在Java环境中的实现和性能测试,揭示它们在处理不同规模数据时的效率差异。 **快速排序(Quick Sort)** 快速排序由C.A.R. Hoare在...
以下是标题"java实现的八种基本排序算法(有注释)"所涵盖的八种排序算法的详细说明: 1. **冒泡排序(Bubble Sort)**: 冒泡排序是一种简单的交换排序,通过不断比较相邻元素并交换位置,使最大或最小的元素逐渐...
在实际开发中,更高效的排序算法如快速排序、归并排序等更为常用。 6. **代码示例**: ```java public class BubbleSort { public static void bubbleSort(int[] arr) { int n = arr.length; for (int i = 0; ...
这个实验的核心目标是创建一个图形用户界面(GUI),用户可以通过它来执行各种排序算法,如冒泡排序、选择排序、插入排序、快速排序等。下面将详细介绍涉及的知识点。 1. **Java基础**:首先,你需要熟悉Java编程...
简单实用的快速排序代码,有注释
Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...
这个压缩包“JavaAPI部分练习代码全注释”显然是为了帮助Java初学者或者有经验的开发者巩固和深化对Java API的理解而准备的。以下是一些关于Java API的重要知识点: 1. **基础类库**:Java API包括了I/O流、集合...
分治思想的排序包括:归并排序,快速排序,堆排序。 程序把随机生成的整数进行排序,开始时用1到7选择用哪种排序(没有图形界面,算法为主),堆排序较为特殊,见注释。 有问题到博客中该篇文章下欢迎反馈交流~
本文将详细介绍和分析常见的几种排序算法,并通过Java语言实现这些算法。具体包括冒泡排序、简单选择排序、直接插入排序、希尔排序、归并排序以及快速排序等。每种排序算法都将通过具体的Java代码实现并加以解释,...
`配置文件.txt`可能包含了对Eclipse其他设置的详细说明,例如代码格式化规则、编译器警告级别、导入排序方式等。在Eclipse中,这些配置可以通过`Window > Preferences`菜单逐项查看和调整。通过阅读此文件,你可以...
在资源包中的"dataStructure"文件中,你将会找到这些排序算法的实现代码,每行代码都有详细的注释,这对于初学者理解和学习各种排序算法非常有帮助。通过阅读和实践这些代码,你可以深入理解每种排序算法的逻辑,并...
10. **性能优化**:对于大量数据,可能需要考虑使用更高效的排序算法,如快速排序或归并排序,以减少排序时间。同时,对于文件操作,使用缓冲可以提高性能。 总之,这个程序涉及到Java的基础输入输出、文件操作、...
1. **排序算法**:包括冒泡排序、选择排序、插入排序、快速排序、归并排序等。排序算法是数据处理的基础,用于将一组数据按照特定顺序排列。例如,快速排序是一种高效的分治策略,其平均时间复杂度为O(n log n)。 2...