`
jsczxy2
  • 浏览: 1273869 次
  • 性别: 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 的曲线的形式,...

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

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

    JS数据结构与算法.pdf

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

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

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

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

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

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

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

    数据结构实验-排序算法

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

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

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

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

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

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

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

    数据结构(严蔚敏)第十章:内部排序

    严蔚敏教授的《数据结构》是一本经典的教材,其中第十章专门讲解了内部排序算法。内部排序,指的是数据在计算机内存中进行的排序过程,相对于外部排序,其处理的数据量相对较小,但要求快速、高效。 在这一章中,...

    数据结构与算法分析_Java语言描述(第2版) 源代码

    《数据结构与算法分析_Java语言描述(第2版) 源代码》是一本深入探讨数据结构和算法的书籍,其源代码是学习和理解书中理论的重要实践资源。这本书籍主要面向计算机科学专业的学生以及对算法有深入研究需求的开发者。...

    数据结构与算法之排序

    4. 快速排序:采用分治策略,选取一个基准元素,将序列分为两部分,一部分所有元素小于基准,另一部分所有元素大于基准,然后递归地对两部分进行快速排序。 5. 归并排序:同样使用分治策略,将序列不断分成两半,...

    数据结构快速排序二分法查找

    "数据结构快速排序二分法查找" 快速排序和二分法查找是数据结构中两个非常重要的概念,它们都是解决实际问题的重要工具。在本文中,我们将详细介绍快速排序和二分法查找的原理、实现和应用。 快速排序 快速排序...

Global site tag (gtag.js) - Google Analytics