Java实现快速排序
2014-04-17 11:09
197 查看
package com.taiji.demo; public class QuickSort { /** * 第一种,选取a[start]为key * @Desc * @param array * @param start * @param end * @Time 2014年4月17日上午9:40:10 */ private static void quickSort(int[] array, int start, int end) { if (start < end) { int key = array[start];// 初始化保存基元 int i = start, j;// 初始化i,j for (j = start + 1; j <= end; j++) { if (array[j] < key)// 如果此处元素小于基元,则把此元素和i+1处元素交换,并将i加1,如大于或等于基元则继续循环 { int temp = array[j]; array[j] = array[i + 1]; array[i + 1] = temp; i++; } } array[start] = array[i];// 交换i处元素和基元 array[i] = key; quickSort(array, start, i - 1);// 递归调用 quickSort(array, i + 1, end); } } /** * 第二种,自己实现的,选取array[end]为key * @Desc * @param array * @param start * @param end * @Time 2014年4月17日上午9:45:17 */ public static void quickSortOfOwn(int[] array, int start, int end) { if(start < end) { // 选择基元,为最后一个元素 int key = array[end]; int i = start, j; for(j = start; j < end; j++) { if(array[j] < key) { int temp = array[j]; array[j] = array[i]; array[i] = temp; i++; } } array[end] = array[i]; array[i] = key; // 递归 quickSortOfOwn(array, start, i - 1); quickSortOfOwn(array, i + 1, end); } } public static void main(String[] args) { int[] array = new int[] {11, 213, 134, 44, 77, 78, 23, 43}; quickSortOfOwn(array, 0, array.length - 1); for (int i = 0; i < array.length; i++) { System.out.println((i + 1) + "th:" + array[i]); } System.out.println("------------------"); int[] array1 = new int[] {11, 213, 134, 44, 77, 78, 23, 43}; quickSort(array1, 0, array1.length - 1); for (int i = 0; i < array1.length; i++) { System.out.println((i + 1) + "th:" + array1[i]); } } }
相关文章推荐
- Java实现快速排序
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 4、 排序有哪几种方法?请列举。并用JAVA实现一个快速排序.
- Java 常用排序算法实现--快速排序、插入排序、选择、冒泡
- java实现快速排序、插入排序、选择排序、冒泡排序算法
- 快速排序——Kotlin、Java实现
- java 递归实现快速排序
- 排序算法复习(Java实现):插入,冒泡,选择,Shell,快速排序, 归并排序,堆排序,桶式排序,基数排序
- 快速排序的递归和非递归实现 -----C++、JAVA代码实现
- 快速排序-java实现
- 快速排序的Java实现
- java(Merge) 实现归并排序,快速排序
- 快速排序-java实现
- 快速排序——JAVA实现(图文并茂)
- 快速排序—java实现
- 快速排序Java实现
- 快速排序java实现
- 快速排序的java实现(key的位置可任取)
- 排序算法复习(Java实现)(二): 插入,冒泡,选择,Shell,快速排序
- Java 实现 堆排序 快速排序 以及 TopK问题(一)