`
HUYIZIZHEN
  • 浏览: 115960 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java排序算法系列(二)——快速排序

阅读更多
测试代码:
package com.zlpy.quicksort;

public class MainClass {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		int[] r={48,62,35,77,43,55,14,98,24};
		//排序前输出
		QuickSort.print(r);
		sort(r,0,r.length-1);
		//排序后输出
		QuickSort.print(r);
		
	}
	
	public static void sort(int[] r,int left,int right){
		if(left<right){
		int pos = QuickSort.quickSort(r, left, right);		
		sort(r, left, pos-1);
		sort(r,pos+1,right);
		}
	}
}

算法代码:
package com.zlpy.quicksort;

public class QuickSort {

	/*一趟快速排序的算法*/
	public static int quickSort(int[] r,int left,int right){
		int low=left;
		int high=right;
		int x=r[low];
		
		while(low<high){
			while(low<high && x<r[high]){
				high--;
			}
			if(low<high){
				r[low]=r[high];
				low++;
			}
			
			while(low<high && x>r[low]){
				low++;
			}
			if(low<high){
				r[high]=r[low];
				high--;
			}
		}
		r[low]=x;
		return low;
	}
	
	public static void print(int[] r){
		String str = "";
		for(int i=0;i<r.length;i++){
			str+=r[i]+" ";
		}
		System.out.println(str);
	}
}
分享到:
评论

相关推荐

    算法可视化系列——排序算法——快速排序

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer)。在这个系列中,我们将通过算法可视化来深入理解快速排序的工作原理。 快速排序的步骤...

    算法课程设计——分治法(java实现)

    在本课程设计中,我们将使用 Java 语言对快速排序算法进行实现,并对算法的性能进行分析和比较。 快速排序算法的优点包括: * 高效的排序速度:快速排序算法的时间复杂度为 O(n log n),它是一种高效的排序算法,...

    Java经典算法50题——答案下载!

    1. 排序算法:包括冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等,理解每种排序算法的工作原理和时间复杂度是至关重要的。 2. 搜索算法:线性搜索、二分搜索、深度优先搜索(DFS)、广度优先搜索...

    算法可视化系列——排序算法——冒泡排序

    - 在实际编程中,更高效的排序算法如快速排序、归并排序等更为常用。 在`AlgorithmBubleSort.java`中,我们还可以探讨代码的可读性、空间复杂度以及可能的优化措施,例如使用双指针法减少不必要的比较。这些都将是...

    算法可视化系列——排序算法——选择排序

    **选择排序**是一种简单直观的排序算法,它的工作原理如下:...在实际应用中,更高效的排序算法如快速排序、归并排序或堆排序等通常会优先考虑。然而,对于教学和理解排序算法的基本原理,选择排序是一个很好的起点。

    java算法——快速排序

    快速排序 * 1.i=left,j=right,将基准数挖出形成第一个坑a[i]; * 2.j--由后向前找比它小的数,找到后挖出此数填前一个坑a[i]; * 3.i++由前向后找比它大的数,找到后挖出此数填到前一个坑a[j]中 * 4.以i为中线,...

    算法可视化系列——排序算法——希尔排序

    希尔排序(Shell Sort)是一种基于插入排序的快速排序方法,由Donald Shell于1959年提出。它的主要思想是将待排序的数据按照一定的间隔进行分组,然后对每组进行插入排序,随着间隔逐渐缩小,最后进行一次全排列,...

    Java数据结构和算法

    (1)数据结构与算法概念...(15)排序算法(五)——快速排序 (16)排序算法(六)——希尔排序 (17)排序算法(七)——堆排序 (18)排序算法(八)——基数排序 (19)排序算法(九)——八大排序算法总结

    快速排序算法以及归并算法

    根据给定的文件信息,我们将深入探讨两种经典的排序算法——快速排序和归并排序,并结合Java语言实现进行详细解析。 ### 快速排序算法 快速排序是一种高效的排序算法,采用分而治之的策略,其核心思想是选择一个...

    算法-归并排序(java)(csdn)————程序.pdf

    归并排序算法-java 实现 在计算机科学中,排序算法是指将一组无序的数据按照某种规则排列成有序的数据。归并排序(Merge Sort)是一种常用的排序算法,属于分治算法的范畴。下面将详细介绍归并排序算法的java实现。...

    java实现的4种排序算法(冒泡、快速、插入、选择)

    以下是根据标题和描述中提到的四种排序算法——冒泡排序、快速排序、插入排序和选择排序的详细说明。 **冒泡排序(BuddleSort)**: 冒泡排序是一种简单的交换排序,它通过重复遍历待排序的列表,比较相邻元素并...

    算法学习资料——算法.zip

    - 排序算法:如冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序等,每种排序算法都有其适用场景和优缺点。 - 搜索算法:如线性搜索、二分搜索、哈希搜索等,它们在数据查找中起着关键作用。 - 图算法...

    快速排序与归并排序的算法比较实验报告

    这篇实验报告将深入探讨两种经典的排序算法——快速排序和归并排序,通过对它们在Java环境中的实现和性能测试,揭示它们在处理不同规模数据时的效率差异。 **快速排序(Quick Sort)** 快速排序由C.A.R. Hoare在...

    排序算法 Java经典算法

    首先,我们来看看基础的排序算法——冒泡排序。冒泡排序是最简单的交换排序,通过重复遍历待排序的数列,依次比较相邻元素并根据需要交换它们的位置,直到没有任何一对数字需要交换为止。虽然效率较低,但它对于理解...

    java版本排序算法

    以上介绍了三种基本的排序算法——插入排序、冒泡排序和选择排序。虽然它们在处理小规模数据集时表现良好,但在大规模数据集面前,这些算法的性能通常不如更高效的算法,如快速排序、归并排序等。然而,了解这些基础...

    《Java数据结构和算法》学习笔记(2)——4种简单排序算法

    这些算法虽然在复杂度上不如高级排序算法如快速排序或归并排序,但它们提供了基础的排序逻辑,有助于理解更复杂的算法思想。 首先,我们来详细讲解插入排序(Insertion Sort)。插入排序的工作原理类似于我们手动...

    各种排序算法java实现

    标题 "各种排序算法java实现" 涉及到的是计算机科学中的一个重要领域——算法,特别是排序算法在Java编程语言中的具体应用。排序算法是数据结构与算法分析中的基础部分,它们用于将一组数据按照特定顺序排列。在这个...

    最快的排序算法 图解八大排序算法——我见过的最详细的讲解(转),排序算法数据结构

    常见的排序算法有八种,即选择排序、冒泡排序、插入排序、归并排序、快速排序、堆排序、.radix 排序和基数排序。 一、分类 内部排序和外部排序是两种基本的排序分类。内部排序是指待排序记录存放在计算机随机...

    java中和排序算法

    ### Java中的排序算法详解 #### 一、排序算法的分类 根据给定文件中的描述,Java中的排序算法大致可以分为以下几类: 1. **插入排序**:包括直接插入排序、折半插入排序、希尔排序等。 2. **交换排序**:主要包括...

Global site tag (gtag.js) - Google Analytics