`
yan_qinglong
  • 浏览: 4193 次
  • 性别: 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语言编写的可扩展快速排序算法。 资源简介: 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 ...

    Java实现常用排序算法

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

    Java所有排序算法大全

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

    各种排序算法java实现

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

    Java各种排序算法代码.zip

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

    Java版快速排序法

    这是一个用Java语言实现的快速排序算法,快速排序算法是根据分冶思想去实现的。

    常用排序算法java演示

    Java作为广泛应用的编程语言,提供了丰富的工具和技术来实现各种排序算法。本文将深入探讨标题"常用排序算法java演示"中涉及的知识点,包括排序算法的原理、Java实现方式以及其在实际应用中的图形演示。 首先,让...

Global site tag (gtag.js) - Google Analytics