1. 程式人生 > >高速排序(Java版)

高速排序(Java版)

content 輸入 println pop package ati 遞歸 子列 大於

package com.love.test;

import java.util.Scanner;


 /**
 * @author huowolf
 *高速排序實現
 *快排是十分優秀的排序算法。

*核心:分治法(1.選基元2.分區3.遞歸子列) */ public class QuickSort { public static void quickSort(int[] arr,int start ,int end) { if(start<end) { int i=start, j=end, x=arr[start];//基元 while(i<j) { //從右向左掃描小於x的數 while(i<j && arr[j]>=x) j--; if(i<j) arr[i++]=arr[j]; //從左向右掃描大於x的數 while(i<j && arr[i]<=x) i++; if(i<j) arr[j--]=arr[i]; } arr[i]=x;//在最後一個位置中填入基準數 quickSort(arr, start, end-1);//遞歸 quickSort(arr, start+1, end); } } public static void main(String[] args) { int[] arr = new int [10]; System.out.println("請依次輸入十個整數:"); Scanner s = new Scanner(System.in); for(int i=0;i<10;i++) { arr[i] = s.nextInt(); } System.out.println("排序前的順序為:"); for(int i=0;i<10;i++) { System.out.print(arr[i]+" "); } quickSort(arr, 0, arr.length-1); System.out.println("\n排序後的順序為:"); for(int i=0;i<10;i++) { System.out.print(arr[i]+" "); } } }

參考一位大牛的博文,講的非常好,博文地址:http://blog.csdn.net/morewindows/article/details/6684558

加油,自己!!

高速排序(Java版)