public class QuickS {
public static void main(String[] args) {
int arr[]={9,5,58,24,3,15,6,55,7,56,45,2};
sort(arr,0,arr.length-1);
StringBuilder sb=new StringBuilder();
for (int i = 0; i < arr.length; i++) {
sb.append(arr[i]);
sb.append(",");
}
System.out.println(sb.toString());
}
public static void sort(int [] array,int low,int high){
int l=low;
int h=high;
int mark=array[l];
System.out.println("l="+l+", h="+h+" mark="+mark);
while (l<h) {
while (l < h && array[h] > mark) h--;
if(l<h) {
int temp = array[h];
array[h] = array[l];
array[l] = temp;
}
while(l<h&&array[l]<mark)l++;
if(l<h){
int temp=array[h];
array[h]=array[l];
array[l]=temp;
}
}
if(l>low)sort(array,low,l-1);
if(h<high)sort(array,h+1,high);
}
}
分享到:
相关推荐
* 快速排序3.0 —— 随机快排,时间复杂度收敛于 O(NlogN) */ public class QuickSort { /** * * @param arr 需要排序的数组 * @param L 需要排序部分的左边界 * @param R 需要排序部分的右边界 */ public ...
(1)用随机快速排序的方法,对输入的数值以从大到小的顺序进行快速排序。 (2)对随机快速排序和冒泡排序这两种排序方法进行比较,测试其在不同数值大小的情况下算法运行的时间复杂度。 二、 实验要求 快速排序...
快速排序c++实现代码 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它基于分治法的策略,通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再按此...
C++实现快速排序(Quicksort)算法 一、基本思想: 快速排序(Quicksort)算法的基本思想是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对...
C语言简单实现快速排序 快速排序是一种不稳定排序,时间复杂度为O(n·lgn),最坏情况为O(n2);空间复杂度为O(n·lgn)。这种排序方式是对于冒泡排序的一种改进,它采用分治模式,将一趟排序的数据分割成独立的两部分...
几张树图快速掌握快速排序的方法,上课用的没有程序可以参考一下
springboot star 快速排序 快速排序 快速排序 快速排序 快速排序
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer),即把一个大问题分解成若干个小问题来解决。在快速排序中,我们选择一个元素作为“基准”...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是利用分治策略,通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对...
php递归与非递归快速排序写法php递归与非递归快速排序写法php递归与非递归快速排序写法php递归与非递归快速排序写法
在分析快速排序的时间复杂度时,大O表示法是非常关键的工具。快速排序的平均时间复杂度是O(n log n),这意味着当输入数据规模为n时,所需操作的数量大约是n乘以log n。在最坏的情况下,如果输入数组已经完全排序或...
以前学习数据结构的时候写快排用的循环都是双重for循环,今天偶尔看到了运用递归来实现快速排序,所以突发想记录一下。由于我以前学过c和java,现在在自学python,所以一下代码均为python。但基本思想是一样的。 1....
c语言实现的快速排序算法,及其一步步优化代码(1. 数组长度较小时候选择插入排序;2. 主元在数组最左最右,中间三个数字中间选择中间大小的, 数组拆分后将 重复数字挪到主元附近,不进行重复partition)
### 快速排序的算法思想 快速排序是一种高效的排序算法,由C.A.R. Hoare在1962年提出。它的核心思想是基于分治法(Divide-and-Conquer Method),通过递归的方式将一个大的问题分解成若干个小问题来解决。 #### ...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的核心思想是分治法(Divide and Conquer),即通过一次划分操作将待排序的数据分成两部分,一部分的元素都比另一部分小,然后对这两...
快速排序是一种高效的排序算法,由C. A. R. Hoare在1960年提出。它采用分治法(Divide and Conquer)策略,通过一个划分操作将数据分为独立的两部分,其中一部分的所有数据都比另一部分的所有数据要小,然后再递归地...
大学数据结构,快速排序的代码实现,基础基础基础中的基础
Java快速排序QuickSort算法详解 Java快速排序QuickSort是一种常用的排序算法,它的时间复杂度为O(n log n),空间复杂度为O(log n),是一种高效的排序算法。下面是Java快速排序QuickSort的详细介绍: 算法思想 ...