`
saillanbo
  • 浏览: 10650 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

快速排序实现

J# 
阅读更多

public class Sort {

	public static void rSort(int[] a, int p, int r) {

		if (p >= r) {
			System.out.println(" p= " + p + " r = " + r);
			return;
		}
		int q = partition(a, p, r);
		if (q > 0) {
			for (int i = 0; i <= q - 1; i++) {
				System.out.print(a[i] + " ");
			}
		}

		System.out.print("[" + a[q] + "] ");

		for (int i = q + 1; i < a.length; i++) {
			System.out.print(a[i] + " ");
		}

		rSort(a, p, q - 1);
		rSort(a, q + 1, r);

	}

	public static int partition(int[] a, int p, int r) {

		if (r > a.length - 1 || r < p) {

			return p;
		}
		int i = p - 1;
		int j = p;

		int x = a[r];

		while (j <= r - 1) {
			if (a[j] < x) {
				i++;
				int temp = a[i];
				a[i] = a[j];
				a[j] = temp;

			}
			j++;
		}

		int temp = a[r];
		a[r] = a[i + 1];
		a[i + 1] = temp;
		System.out
				.println(" p= " + p + " r = " + r + " partition = " + (i + 1));

		return i + 1;
	}

	public static void main(String[] args) {
		int[] arr = { 5, 7, 9, 3, 16, 8, 14, 47, 31 };
		rSort(arr, 0, arr.length - 1);

	}

}
分享到:
评论

相关推荐

    C++归并排序与快速排序实现.zip

    本资料包“C++归并排序与快速排序实现.zip”主要关注两种经典的排序算法:归并排序(Merge Sort)和快速排序(Quick Sort)。下面我们将详细探讨这两种排序算法以及如何用C++实现它们。 **归并排序(Merge Sort)**...

    快速排序实现原理,及Java实现

    ### 快速排序实现原理及Java实现 #### 一、快速排序算法原理 快速排序是一种高效的排序算法,基于分治法的思想。它的工作原理可以概括为以下几个步骤: 1. **选择基准值**:从待排序的序列中选择一个元素作为基准...

    快速排序算法的简单实现

    快速排序是实际运用中用的最多的算法,虽然它在最坏的情况下会达到n^2,但它的平均性能非常好,期望时间复杂度为nlgn,而且隐含的常数因子非常小,并且是原址排序。 快速排序原理:从一组数中任意选出一个数,将...

    快速排序实现,实现时间性能分析(IDE:xcode)

    快速排序实现,实现时间性能分析(IDE:xcode)

    Python 算法 13快速排序实现.mp4

    Python 算法 13快速排序实现.mp4

    sort_快速排序的mips实现_

    6. **边界处理**:在实际的MIPS快速排序实现中,还需要考虑数组为空或只包含一个元素的情况,这些情况不需要排序,可以直接返回。 7. **优化**:为了提高效率,可以考虑使用尾递归优化,或者在划分过程中减少不必要...

    快速排序算法c++实现

    以下是一个简单的C++快速排序实现的步骤: 1. **选择基准**:可以从数组的任意位置选取一个元素作为基准,常见的做法是从第一个元素或者最后一个元素开始。 2. **分区**:从数组的第二个元素开始,遍历数组,如果...

    C语言实现快速排序

    C语言数据结构实现快速排序代码,已经过调试可以直接使用。

    快速排序 实现

    ### 快速排序的核心概念与实现 #### 一、快速排序简介 快速排序是一种非常高效的排序算法,由英国计算机科学家托尼·霍尔(Tony Hoare)于1960年提出。它采用分治法策略来把一个序列分为较小和较大的两个子序列,...

    改进的快速排序

    在给出的C++代码中,可以看到改进的快速排序实现如下: - `improved_qsort`函数实现了改进后的快速排序算法。通过设置双指针`i`和`j`,并利用基准元素`pivot`来进行分割操作。 - `quick_sort`函数实现了原始的快速...

    快速排序的C语言实现

    用c++写的一个快速排序程序的实现,程序简洁,可以直接用在C语言上

    多线程实现冒泡,快速排序

    快速排序实现 快速排序是一种非常高效的排序算法,它的基本思想是选择一个基准值,通过一趟排序将待排记录分隔成独立的两部分,其中一部分的所有记录都比另一部分的所有记录都要小,然后分别对这两部分记录继续...

    C语言实现多种链表快速排序

    在C语言中实现链表快速排序,首先需要理解链表和快速排序的基本概念。链表不同于数组,它不连续存储数据,而是通过指针连接各个节点。每个节点包含数据元素和指向下一个节点的指针。快速排序的核心是“分区操作”和...

    c++实现快速排序源码.zip

    4. **myQuickSort.h**:这个名字可能表示这是一个自定义版本的快速排序实现,可能包含了一些特定的优化或者改进。例如,可能会包含针对已排序或接近排序情况的优化,或者处理小数组的特殊策略。 5. **print.h**:这...

    快速排序 --- 非递归实现

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R....总的来说,这个压缩包提供了一个非递归实现快速排序的完整示例,通过自定义栈的数据结构,实现了快速排序算法,适用于理解和学习快速排序的非递归实现方式。

    快速排序算法(c#实现)

    在C#中实现快速排序,我们通常会用到递归函数。首先,我们需要一个方法来选取枢轴,这可以是数组的第一个元素、最后一个元素,或者数组中间的元素,也可以是三数取中法,即取首、尾、中间三个元素的中位数作为枢轴,...

    数据结构排序里的快速排序

    在提供的代码片段中,可以看到一个简单的快速排序实现。具体步骤如下: 1. **定义函数**:`void QSort(ElemType R[], int n)`,其中`ElemType`表示数组元素的数据类型,`R`是待排序的数组,`n`是数组的长度。 2. **...

    算法领域,快速排序(Quicksort),用于排列数据

    Erlang 是一种面向并发的函数式编程语言,其快速排序实现也非常简洁。 ```erlang q_sort([]) -&gt; []; q_sort([H|R]) -&gt; q_sort([X||X,X]) ++ [H] ++ q_sort([X||X,X&gt;=H]). ``` #### 五、快速排序的应用场景 由于...

    数据结构线性表快速排序

    快速排序实现 - **快速排序函数** `void quick(Sqlist& L, int m, int n)`: - 功能:对线性表`L`在索引`m`至`n`之间的元素进行快速排序。 - 实现:首先检查边界条件,如果起始索引大于等于终止索引则返回;接着...

Global site tag (gtag.js) - Google Analytics