`
jsczxy2
  • 浏览: 1278347 次
  • 性别: Icon_minigender_1
  • 来自: 常州
文章分类
社区版块
存档分类
最新评论

数据结构与算法:快速排序

阅读更多

 

import java.util.Arrays;

import junit.framework.TestCase;

/**
 * 快速排序
 * 
 * @author jsczxy2
 * 
 */
public class QuickSort extends TestCase {

	@Override
	protected void setUp() throws Exception {
		super.setUp();
	}

	public void testQuickSort() {
		int[] a = { 1, 9, 3, 4, 4, 5, 7, 8, 1 };
		quickSort(a, 0, a.length - 1);
		System.out.println(Arrays.toString(a));
	}

	private void swap(int a[], int i, int j) {
		int temp = a[i];
		a[i] = a[j];
		a[j] = temp;
	}

	private int sort(int a[], int left, int right) {
		int temp = a[left];
		int i = left + 1;
		int j = right;
		while (true) {
			while (a[i] < temp && i < right) {
				i++;
			}
			while (a[j] > temp && j > left) {
				j--;
			}
			if (i >= j)
				break;
			swap(a, i, j);
		}
		a[left] = a[j];
		a[j] = temp;
		return j;
	}

	private void quickSort(int a[], int left, int right) {
		if (left < right) {
			int j = sort(a, left, right);
			quickSort(a, left, j - 1);
			quickSort(a, j + 1, right);
		}
	}

}
分享到:
评论

相关推荐

    数据结构与算法:快速排序算法原理与实现

    此外,文章还总结了快速排序的优点与缺点,并列举了其在实际应用中的广泛用途,如在编程语言标准库和数据库系统中的应用。 适合人群:计算机科学专业学生、算法爱好者、软件开发者等。 使用场景及目标:适用于需要...

    c语言 数据结构 快速排序算法

    c语言版本的数据结构的快速排序算法,适用于新手学习

    数据结构排序算法:插入排序、希尔排序、冒泡排序及快速排序算法

    数据结构

    数据结构与算法:C#语言描述(中文)

    - 快速排序:介绍快速排序算法,这是一种高效且流行的排序算法。 - **第15章:高级数据结构** - AVL树、红黑树、跳跃表:介绍三种用于高效查找的数据结构。 - **第16章:图算法** - 图论基础:介绍图及其在...

    数据结构与算法:Python语言实现 代码段 练习题提示

    3. **排序与搜索算法**:常见的排序算法有冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序。搜索算法包括线性搜索、二分搜索以及图的深度优先搜索和广度优先搜索。 4. **递归与动态规划**:递归是解决...

    数据结构与算法:Python语言实现【源代码】Source Code Files - Packaged.zip

    数据结构与算法是计算机科学的基础,对于理解和解决复杂问题至关重要。本书"数据结构与算法:Python语言实现"提供了丰富的源代码,旨在帮助读者通过实践掌握这些核心概念。Python作为一种易于学习且功能强大的编程...

    数据结构与算法:C#语言描述(目录完整版)

    7. **排序与搜索算法**:如冒泡排序、快速排序、归并排序、二分查找等。C#提供了Array.Sort()和List&lt;T&gt;.Sort()等方法进行排序,但对于自定义排序算法的理解依然很重要。 8. **哈希表与字典**:C#的Dictionary, ...

    哈工大数据结构实验5_冒泡排序与快速排序

    (1) 冒泡排序和快速排序; (2) 插入排序和希尔排序; (3) 选择排序和堆排序; (4) 递归和非递归的归并排序。 2. 产生不同规模和分布的数据,以 Excel 生成算法执行时间 T(n)关于输入规模 n 的曲线的形式,...

    JS数据结构与算法.pdf

    JS 数据结构与算法.pdf 本书主要介绍了 JavaScript 语言的基础知识,包括数据结构和算法。以下是该书的详细知识点: 一、JavaScript 基础知识 * 变量和数据类型 * 运算符和控制结构 * 函数和对象 * 数组和字符串 ...

    二叉树建立遍历冒泡排序快速排序算法:C语言编程实现10个数据结构课程设计实例.zip

    二叉树建立遍历冒泡排序快速排序算法:C语言编程实现10个数据结构课程设计实例.zip 二叉树建立遍历冒泡排序快速排序算法:C语言编程实现10个数据结构课程设计实例.zip 二叉树建立遍历冒泡排序快速排序算法:C语言...

    数据结构与算法:C语言描述.zip

    数据结构与算法是计算机科学的基础,对于理解和解决复杂问题至关重要。C语言因其高效、底层特性,常被用于实现数据结构和算法,使得程序运行效率更高。在这个“数据结构与算法:C语言描述”的资料包中,很可能是包含...

    高效排序算法:快速排序Java与Python实现详解

    适合人群:具有基本编程知识,尤其是Java和Python开发者,对于数据结构和算法有兴趣的学习者。 使用场景及目标:适用于学习或教学过程中需要讲解或演示快速排序算法的具体实现;帮助学生或开发者加深对分治法的理解...

    数据结构、算法与应用 C++语言描述 原书第2版.pdf

    《数据结构、算法与应用 C++语言描述》第二版是一本深入探讨数据结构、算法及其在C++编程中的实现的经典著作。这本书旨在帮助读者理解和掌握数据结构和算法的基础知识,并通过C++语言来实践这些概念,提升编程能力。...

    数据结构与算法分析:Java语言描述

    数据结构与算法分析是计算机科学的核心领域之一,它主要研究如何高效地组织和处理数据,以及设计和分析解决计算问题的算法。在《数据结构与算法分析:Java语言描述》一书中,作者深入探讨了这一领域的关键概念和技术...

    数据结构与算法分析--C语言描述_数据结构与算法_

    数据结构与算法是计算机科学的基础,对于理解和设计高效的软件至关重要。C语言因其高效、底层特性,常被用于实现数据结构和算法,使得程序更接近硬件,性能更优。本资源"数据结构与算法分析--C语言描述"是针对数据...

    Java编程语言中的数据结构与算法:深入理解与实践指南.zip

    通过深入理解和实践Java中的数据结构与算法,开发者可以编写出更高效、更优雅的代码,解决复杂的编程挑战。在Algorithm-master这个项目中,很可能是包含了一系列练习和示例代码,帮助学习者通过实际操作来巩固这些...

    数据结构实验-排序算法

    排序算法则是数据结构中的重要部分,它们用于对一组数据进行有序排列。在这个实验中,我们将关注六种不同的排序算法:选择排序、冒泡排序、插入排序、基数排序以及快速排序和归并排序。下面是对这些排序算法的详细...

    《数据结构与算法:Java语言描述》源码.zip

    算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法...

    数据结构代码题备考:快速排序与图、树的经典题目解析

    本文档《数据结构代码题备考.pdf》涵盖了多类数据结构相关的考试题目及其解答方法,包括快速排序(含具体算法实现与多个历年真题案例)、二路归并排序、链表、图的表示形式(邻接矩阵和邻接表)以及多种关于二叉树的...

Global site tag (gtag.js) - Google Analytics