`
bo_hai
  • 浏览: 565945 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

快速排序的简单实例

 
阅读更多

代码如下:

public class QuickSortTest {

	public static void main(String[] args) {
		int[] arr = {9,8,10,7,5,6,3,2,4,-1};
		SortUtil.showArr(arr);
		quickSort(arr,0,arr.length -1);
		SortUtil.showArr(arr);
	}

	public static void quickSort(int[] arr,int low ,int high) {
		int i = low;
		int j = high;
		int temp = arr[i];
		while(i < j) {
			while (i < j && temp < arr[j]) {
				j--;
			}
			if (i < j) {
				arr[i] = arr[j];
			}
			while (i < j && temp > arr[i]) {
				i++;
			}
			if (i < j) {
				arr[j] = arr[i];
			}
		}
		arr[i] = temp;
		if (low < i - 1) {
			quickSort(arr,low,i -1);
		}
		if (j + 1 < high) {
			quickSort(arr,j + 1,high);
		}
	}
}

 

1
0
分享到:
评论
5 楼 bo_hai 2014-06-23  

public class QuickSortTest {

	public static void quickSort(int[] arr,int low,int hight) {
		int i = low ,j = hight;
		int temp = arr[i];
		while (i < j) {
			while (i< j && temp < arr[j]) {
				j --;
			}
			if (i < j) {
				arr[i] = arr[j];
				i++;
			}
			while (i < j && temp > arr[i]) {
				i ++;
			}
			if (i < j) {
				arr[j] = arr[i];
				j --;
			}
		}
		arr[i] = temp;
		if (low < i) {
			quickSort(arr, low, i - 1);
		}
		if (hight > j) {
			quickSort(arr,j + 1,hight);
		}
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int[] arr = {56,85,25,22,78,96,71,23,15,18,98};
		display(arr);
		quickSort(arr,0,arr.length -1);
		System.out.println();
		display(arr);
	}

	public static void display(int[] arr) {
		for (int i : arr) {
			System.out.print(i);
			System.out.print("\t");
		}
	}
}




上面算法可能存在问题,这个算法是正确的。
4 楼 bo_hai 2013-12-20  
yandou524 写道
用三目运算符!

没明白。
3 楼 bo_hai 2013-12-20  
jeffsc 写道
SortUtil这个类你不上传?

public static void showArr(int[] arr) {
	for (int i : arr) {
		System.out.print(i);
		System.out.print('\t');
	}
	System.out.println();
}

2 楼 jeffsc 2013-12-20  
SortUtil这个类你不上传?
1 楼 yandou524 2013-12-20  
用三目运算符!

相关推荐

    C语言对磁盘文件进行快速排序简单实例

    C语言对磁盘文件进行快速排序简单实例 快速排序(quick sort)是由C.A.R.Hoare发明并命名的,这种排序被认为是目前最好的一种排序算法。快速排序基于交换排序,与同样的基于交换排序的冒泡排序法相比,其效果非常...

    快速排序算法实现 基于VC6.0

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法...总的来说,快速排序算法是理解分治策略的重要实例,通过VC6.0的实践,可以更好地掌握算法的实现细节和调试技巧。

    vb 简单快速排序

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它基于分治法的策略,通过选取一个“基准”元素,将数组分为两个子数组,使得左边的元素都小于基准,右边的元素都大于基准,然后对这两...

    快速排序算法(C经典实例)

    以下是一个简单的C语言快速排序函数示例: ```c void quick_sort(int arr[], int left, int right) { if (left ) { int pivot = partition(arr, left, right); quick_sort(arr, left, pivot - 1); quick_sort...

    快速排序算法和冒泡排序效率对比

    总的来说,快速排序和冒泡排序都是排序算法的重要实例,它们代表了不同的时间复杂度级别和设计思路。在C#编程中,理解并掌握这两种算法有助于我们更好地理解和优化程序性能,尤其是在处理大量数据时。同时,这也为...

    c语言- 快速排序

    ### c语言 - 快速排序 #### 知识点概览 1. **递归算法的概念及应用** 2. **快速排序的基本原理** 3. **快速排序的实现步骤** 4. **快速排序的时间复杂度分析** 5. **快速排序的空间复杂度分析** 6. **快速排序与...

    JAVA冒泡排序和快速排序算法

    本节将深入探讨两种常见的排序算法:冒泡排序和快速排序。 首先,我们来详细讲解冒泡排序。冒泡排序是一种简单直观的排序算法,它的基本思想是通过重复遍历待排序的数列,依次比较相邻元素并交换位置,使得较大的...

    c++模板类实现快速排序

    以下是一个简单的C++模板类实现快速排序的示例: ```cpp template void quickSort(T arr[], int left, int right) { if (left ) { int pivotIndex = partition(arr, left, right); quickSort(arr, left, pivot...

    C++语言的算法实现包括插入排序冒泡排序堆排序快速排序

    本文将深入探讨四种在C++中实现的常见排序算法:插入排序、冒泡排序、堆排序和快速排序。这些算法各有特点,适用于不同的场景,理解并掌握它们对于提升编程能力至关重要。 1. **插入排序**: 插入排序是一种简单的...

    C#快速排序练习

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它基于分治策略,通常比其他O(n^2)时间复杂度的排序算法更快,平均时间复杂度为O(n log n)。在最坏的情况下,即输入数组已经完全排序或...

    快速排序c++源代码

    以下是一个简单的C++快速排序函数实现: ```cpp #include using namespace std; void swap(int* a, int* b) { int t = *a; *a = *b; *b = t; } int partition(int arr[], int low, int high) { int pivot = ...

    快速排序算法代码 C++

    下面是一个简单的C++实现快速排序的步骤: 1. **选择基准**: 可以选取第一个元素、最后一个元素或者随机选取元素作为基准。 2. **分区操作**: 使用`i`和`j`两个指针,`i`初始指向数组的第一个元素,`j`初始指向数组...

    直接插入、折半插入、冒泡、快速、简单选择等排序方法 用c语言实现

    直接插入、折半插入、冒泡、快速、简单选择等排序方法 用c语言实现 代码运行正常 不会有任何的问题

    C#快速排序简单算法

    以下是一个简单的C#快速排序实现示例: ```csharp using System; class QuickSort { public static void Sort(int[] arr, int left, int right) { if (left ) { int pivotIndex = Partition(arr, left, right...

    java快速排序算法实现

    下面是一个简单的Java快速排序算法实现示例: ```java public class QuickSort { public static void quickSort(int[] arr, int low, int high) { if (low ) { // 找到基准元素的正确位置 int pivotIndex = ...

    JAVA版排序算法之快速排序示例

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer)。在这个JAVA版的快速排序示例中,我们将会深入理解如何用Java实现快速排序算法。 首先,...

    用C++实现快速排序

    以下是一个简单的C++代码实现快速排序的例子: ```cpp #include #include using namespace std; int partition(vector&lt;int&gt;& arr, int low, int high) { int pivot = arr[high]; int i = low - 1; for (int j...

    快速排序的java实现

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的核心思想是分治法,通过一趟排序将待排序的数据分成两个子序列,其中一个序列的所有元素都比另一个序列的元素小,然后对这两个子...

    使用SOrt方法对数组进行快速排序

    在实际应用中,快速排序的性能通常优于其他简单排序算法,如冒泡排序和插入排序,尤其是在处理大量数据时。但需要注意的是,快速排序在最坏的情况下(即输入数组已经完全排序或逆序)其时间复杂度会退化到O(n^2),...

Global site tag (gtag.js) - Google Analytics