一种快速排序算法
//快速排序
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("");
}
}
分享到:
相关推荐
快速排序算法是一种高效的排序方法,被广泛用于程序设计中,尤其适合处理大规模数据集。快速排序的基本思想是分治法,通过递归将大数据集分解为小数据集,然后对每个子集进行排序。快速排序的核心在于选择一个“枢轴...
快速排序是一种高效的排序算法,在计算机科学和数学中被广泛研究。其基本原理是分治法策略,即将一组数据分为两个子序列并分别进行排序。...在实际应用中,选择哪一种快速排序算法取决于具体需求和预期的输入数据特性。
在本文中,我们将深入探讨基于FPGA的并行快速排序算法,特别关注“位宽可设”的特性。这种算法能够高效地处理大量数据,并且在硬件实现上具有很高的灵活性。我们将从以下几个方面来阐述这个主题: 一、快速排序算法...
### 快速排序算法在MATLAB中的应用与理解 #### 一、快速排序算法简介 快速排序是一种非常高效的排序算法,由英国计算机科学家托尼·霍尔(Tony Hoare)于1960年提出。它采用分治策略来把一个序列分为较小的两个子...
快速排序算法是由Tony Hoare在1960年提出的一种排序算法,它的平均时间复杂度为O(n log n),是目前最快的排序算法之一。下面我们将详细地讲解快速排序算法的java代码实现。 快速排序算法的基本思想 快速排序算法的...
### 快速排序算法 快速排序是一种高效的排序算法,采用分而治之的策略,其核心思想是选择一个基准元素,通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再...
快速排序和冒泡排序是两种常见的排序算法,它们在计算机科学中扮演着重要的角色,特别是在数据处理和优化程序性能方面。本篇文章将深入探讨这两种排序算法的原理、效率以及它们在C#编程语言中的实现。 首先,让我们...
快速排序算法是一种高效的排序算法,通过递归的方式将记录分区排序。下面将详细介绍快速排序算法的实现细节。 首先,我们需要了解快速排序算法的基本思想。快速排序算法的核心思想是选择一个枢轴元素,然后将记录...
快速排序算法,C语言 快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有...
Java 快速排序,目前来说效率很高的一种排序算法,好理解。
### 快速排序算法在C#中的实现 #### 一、快速排序算法简介 快速排序是一种高效的排序算法,由英国计算机科学家托尼·霍尔(Tony Hoare)于1960年提出。该算法采用分治策略来把一个序列分为较小的两个子序列,再对这...
### 超快速排序算法详解 #### 一、引言 ...综上所述,超快速排序算法通过巧妙地结合快速排序和基数排序的优点,实现了更为高效、稳定的数据排序效果,为计算机科学领域提供了一种新的高性能排序方案。
在这个名为"快速排序算法 源代码"的资源中,包含了一个名为`QuickSortOriginal.cpp`的C++源代码文件,它实现了一个经典的快速排序算法。C++是一种通用的、面向对象的编程语言,因其高效性、灵活性和强大的模板系统而...
快速排序算法设计与分析 快速排序(Quicksort)是一种高效的排序算法,由美国...快速排序算法是一种高效的排序算法,广泛应用于实际应用中。但是,需要选择合适的pivot元素,并且需要注意算法的最坏情况下的性能下降。
冒泡排序是一种简单直观的排序算法,它的基本思想是通过重复遍历待排序的数列,依次比较相邻元素并交换位置,使得较大的元素逐渐“浮”到数列的末尾,就像水底下的气泡逐渐升至水面一样。具体步骤如下: 1. 遍历...
选择排序是一种简单的排序算法,其基本思想是每次从未排序的元素中找出最小(或最大)的元素,将其放置到已排序序列的末尾。时间复杂度为O(n^2),虽然简单易懂,但在处理大数据量时效率较低。 **2. 冒泡排序(Bubble...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer),将一个大问题分解为两个或更多的小问题来解决。在快速排序中,我们选择一个基准元素,...
分治算法实验(用分治法实现快速排序算法)教学文稿.docx 本文档是关于分治算法实验的教学文稿,旨在指导学生学习分治算法的思想和实现快速排序算法。通过实验报告,学生可以了解分治算法的基本概念、算法设计思想、...