一种快速排序算法
//快速排序
public class TestQuickSort {
static void quickSort(int data[], int begin, int end) {
int lo = begin;
int hi = end;
int pivot;
if (begin<end) {
pivot = data[(begin + end) / 2];
while (lo <= hi) {
while ((lo < end) && (data[lo]< pivot)) ++lo;
while ((hi > begin) && (data[hi]>pivot)) --hi;
// if the indexes have not crossed, swap
if (lo <= hi) {
int temp = data[hi];
data[hi] = data[lo];
data[lo] = temp;
++lo;
--hi;
}
}
/*If the right index has not reached the left side of array must
now sort the left partition.*/
if (begin < hi)
quickSort(data, begin, hi);
/*If the left index has not reached the right side of array must
now sort the right partition.*/
if (lo < end)
quickSort(data, lo, end);
}
}
public static void main(String[] args) {
int[] nums = {6, 5, 4, 33, 0, 1, 22};
System.out.println("快速排序前数组元素为:");
for(int i=0;i<nums.length;i++){
System.out.print(nums[i]+" ");
}
System.out.println();
//应用快速排序方法
System.out.println("快速排序后数组元素为:");
quickSort(nums, 0, nums.length-1);
//显示排序后的数组
for(int i = 0; i < nums.length; ++i) {
System.out.print(nums[i] + " ");
}
System.out.println("");
}
}
分享到:
相关推荐
一种快速排序算法的C语言实现.pdf
选择排序 冒泡排序 插入排序 合并排序 快速排序算法原理及代码实现 不同排序算法时间效率的经验分析方法 验证理论分析与经验分析的一致性 当面临巨大数据量的排序的时候,还是优先选择合并排序算法和快速排序算法。...
快速排序算法,C语言 快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有...
Java 快速排序,目前来说效率很高的一种排序算法,好理解。
文章介绍了基本的快速排序算法及三种枢轴元素的选取方法,全面深入地分析了快速排序算法最坏情况下的时间复杂度、平均情况下的时间复杂度、随机情况下的时间复杂度。并对快速排序算法和堆排序算法进行了比较,理论和...
快速排序算法的基本思想是:随机选取数组中的一个值,将所要进行排序的数分为左右两个部分,其中一部分的所有数据都比另外一部分的数据小,然后将所分得的两部分数据进行同样的划分,重复执行以上的划分操作,直到...
用Java语言实现的各种排序,包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、归并排序、堆排序、SortUtil等。 插入排序: package org.rut.util.algorithm.support; import org.rut.util.algorithm....
快速排序:快速排序算法的基本思想是选择一个基准元素,将数组分为两个子数组,其中一个子数组的所有元素都小于基准元素,另一个子数组的所有元素都大于等于基准元素。然后递归地对这两个子数组进行快速排序,最后将...
7种排序算法程序汇总 冒泡排序 选择排序 插入排序 希排序尔 快速排序 二叉排序树 堆排序
在Java实现中,快速排序算法通过quickSort方法接收待排序数组和左右索引作为参数,递归地调用partition方法进行数据划分,并分别对划分后的子序列进行排序。partition方法选择数组中的一个元素作为基准,通过比较和...
快速排序是一种采用分治法策略的高效排序算法,其基本思想是选取一个基准元素,将数组分为两部分,使得一部分的元素都小于基准元素,另一部分的元素都大于基准元素。 快速排序过程 快速排序的过程包括选取基准、分区...
pdqsort一种新颖的模式消除快速排序算法
算法,我可以为您详细解释Java中快速排序算法的实现,并提供一个代码示例。快速排序是一种高效的排序算法,基于分治策略。其基本步骤如下: 1. 选择一个基准元素(pivot),通常选择数组的第一个元素或者最后一个...
计算机专业以及数学专业的人们,都会学计算机快速编程算法,而算法又有好多种,而这里就是将各种算法讲解透彻,对比说明,是非常值得一看的
快速排序是一种经典的排序算法, 它的平均性能非常突出。针对快速排序在某些特殊情况下如数据已有序或重复数据较多时效率较低的问题进行了研究, 对三路快速排序进行改进, 使快速排序在特殊情况下也能保持较好的效率。...
快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为...
5.3.2一种更快的作业排序算法,排序算法数据结构.doc
当然,我可以为您详细解释Java中快速排序算法的实现,并提供一个代码示例。快速排序是一种高效的排序算法,基于分治策略。其基本步骤如下: 1. 选择一个基准元素(pivot),通常选择数组的第一个元素或者最后一个...
常见的排序算法包括冒泡排序、插入排序、选择排序、快速排序、归并排序等。 搜索算法:搜索算法用于在数据集中查找特定元素的算法。常见的搜索算法包括线性搜索、二分搜索等。 图算法:图算法用于处理图结构的数据...
几种内部排序算法总结!(冒泡排序、快速排序、直接插入排序、拆半插入排序、简单选择排序)