`
yan_qinglong
  • 浏览: 4207 次
  • 性别: Icon_minigender_1
  • 来自: 江西
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java语言快速排序算法的实现

    博客分类:
  • J2SE
 
阅读更多
package com.yql.test;

public class QuickSort {
     //快速排序算法平均运行时间O(NlogN),最坏的情形性能为O(N*N)
	public void quickSort(String[] strDate, int left, int right) {
		String middle, tempDate;
		int i, j;
		i = left;
		j = right;
		//选取枢纽元为中间的,时间证明这种选取枢纽元得方法 (三数中值分割算法)比较好
		middle = strDate[(i + j) / 2];
		
		do{ 
		    //直到找到左边第一个大于或等于枢纽元的数值时执行右边查询
			while(strDate[i].compareTo(middle)<0&&i<right)
				i++;
			//直到找到右边第一个小于或等于枢纽元的数值执行下面的交换
			while(strDate[j].compareTo(middle)>0&&i>left)
				j--;
			//当ij没有交叉时,交换数组i,j位置的值
			if(i<=j){
				tempDate=strDate[i];
				strDate[i]=strDate[j];
				strDate[j]=tempDate;
				i++;
				j--;
			}
		}while(i<=j);//只要ij没有交错就一直执行
	    //ij交错时,如果i比最右边的小 ,给右边的数值排序
		if(i<right){
		   quickSort(strDate,i,right);	
		}
		//ij交错时,如果j比最左边的大,给左边的数值排序
		if(j>left){
			   quickSort(strDate,left,j);	
			}
	}
	
	public static void main(String[] args) {
		//准备需要排序的数据
		String[] strVoid = new String[] { "11", "66", "22", "0", "55", "22",
				"0", "32" };
		QuickSort sort = new QuickSort();
		//排序 
		sort.quickSort(strVoid, 0, strVoid.length - 1);
		//打印排好了序列的数组
		for(int i=0;i<strVoid.length;i++){
			System.out.println(strVoid[i]+"  ");
		}
	}
}

 

分享到:
评论
1 楼 jf19880423 2012-08-14  
执行以后发现是 0, 0, 32, 11, 22, 22, 55, 66, 这个排序算法是不是有错误

相关推荐

    Java实现快速排序算法+编程知识+技术开发

    Java实现快速排序算法+编程知识+技术开发; Java实现快速排序算法+编程知识+技术开发; Java实现快速排序算法+编程知识+技术开发; Java实现快速排序算法+编程知识+技术开发; Java实现快速排序算法+编程知识+技术...

    各种排序算法比较(java实现)

    本文将详细探讨标题所提及的几种排序算法:合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并结合Java语言的实现进行解析。 1. **合并排序(Merge Sort)**: 合并排序是一种基于分治策略的排序算法...

    Java语言实现六种排序算法

    本文将详述Java语言实现的六种经典排序算法:冒泡排序、选择排序、插入排序、归并排序、希尔排序以及快速排序。这些排序算法各有特点,适用于不同的场景。 1. 冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序...

    java语言实现排序算法

    java语言实现排序算法:包括冒泡排序、选择排序、快速排序、插入排序。

    快速排序算法实现java

    快速排序算法实现,随机输入一组数有序输出,用java语言实现

    基于Java的快速排序算法详解与代码实现

    内容概要:本文档详细解析了快速排序(Quicksort)算法在 Java 语言环境下的实现步骤。通过对具体代码片段的研究,展示了如何确定基准点、元素的比较与交换以及递归过程中的边界条件判断。并附带了一个简单的测试...

    java实现常见排序算法

    Java作为广泛应用的编程语言,提供了一种高效的方式来实现各种排序算法。本文将深入探讨Java中实现的两种主要排序类型:插入排序和交换排序。 插入排序是一种简单直观的排序算法,它的工作原理类似于我们日常生活中...

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

    在提供的代码片段中,`Project18_qSort` 类实现了快速排序算法。具体步骤如下: 1. **初始化**:定义一个数组 `a`,并调用 `qSort` 方法进行排序。 2. **递归调用**:在 `qSort` 方法中,首先检查 `from` 和 `to` ...

    java语言多种排序

    设计一个负责排序的程序包,实现多种排序算法,至少包括插入排序、冒泡排序和快速排序算法。 要求: 1.可以对任何简单类型和任意对象进行排序 2.可以支持升序、降序、字典排序等多种顺序要求 3.可以随意增加排序算法...

    基于java语言十大经典排序算法

    **基于Java语言十大经典排序算法** 排序算法是计算机科学中不可或缺的一部分,...通过阅读《基于java语言十大排序算法.docx》文档,你可以深入学习这些排序算法的实现细节,结合图形解释,有助于更好地理解和记忆。

    快速排序算法及其Java实现

    内容概要:本文详细介绍了快速排序算法的概念与实现方式。快速排序由英国计算机科学家Tony Hoare于1960年提出,是一种基于分治策略的高效排序方法。本文主要讲解了快速排序的工作原理,同时提供了一段详细的Java语言...

    可扩展的快速排序算法

    采用java语言编写的可扩展快速排序算法。 资源简介: Array.java(数组接口), SortArray.java(Array的实现类,可扩展), SortVector.java(承载Array,并使用快速排序算法对数组进行排序) SortTest.java(测试类...

    java十二种排序算法实现源代码(类)

    Java作为广泛应用的编程语言,提供了丰富的工具和方法来实现各种排序算法。以下是标题和描述中提到的12种排序算法的详细介绍,以及它们在Java中的实现原理: 1. **冒泡排序**:是最简单的排序算法,通过不断交换...

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

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

    详解Java常用排序算法-快速排序

    在 Java 中,快速排序算法可以使用递归函数来实现。例如,下面的代码就是一个使用快速排序算法对整数数组进行排序的示例: ```java public class Quick { public static void quickSort(int[] arr, int low, int ...

    多种快速排序算法实现排序算法的实现与分析.zip

    排序算法的实现与分析多种快速排序算法实现排序算法的实现与分析.zip

    Java实现常用排序算法

    本文将深入探讨Java中实现的四种基本排序算法:插入排序、交换排序(包括快速排序和冒泡排序)、选择排序以及归并排序。虽然树形选择排序和堆排序在这次实现中未涵盖,但理解这四种排序算法的基本原理和Java实现方式...

    Java所有排序算法大全

    在编程领域,排序算法是计算机科学中的核心概念,特别是在Java这样的高级编程语言中。本文将深入探讨Java中常见的几种排序算法,包括它们的工作原理、优缺点以及如何在实际编程中应用。 首先,我们来看`BubbleSort...

    各种排序算法java实现

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

    Java各种排序算法代码.zip

    这个名为"Java各种排序算法代码.zip"的压缩包包含了一系列实现不同排序算法的Java源代码。排序算法是计算机科学中的基本概念,用于对一组数据进行排列。下面将详细讨论这些算法及其在Java中的实现。 1. 冒泡排序...

Global site tag (gtag.js) - Google Analytics