1. 程式人生 > 其它 >Java實現快速排序

Java實現快速排序

技術標籤:java演算法

程式碼如下:

package code1;
import java.util.Scanner;
public class QuickSort
{
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        System.out.print("請輸入陣列的長度: ");
        int n = scanner.nextInt();
        int[] array = new int
[n]; System.out.print("請輸入需要排序的陣列:"); for (int i = 0; i < array.length; i++) array[i] = scanner.nextInt(); quicksort(array,0,array.length-1); print(array); } public static void print(int[]array) //輸出排序後的陣列 { System.out.print
("快速排序後的陣列:"); for (int i = 0; i <array.length ; i++) { System.out.print(array[i]+" "); } } private static void quicksort(int[]array,int begin,int end) { if (begin<end) { int index=getIndex(array,begin,
end); quicksort(array,begin,index-1); quicksort(array,index+1,end); } } private static int getIndex(int[]array,int begin,int end)//確定軸點的位置 { int pivot=array[begin]; while (begin<end) { while (begin<end) { if (pivot < array[end]) //右邊元素>軸點 end--; else { 右邊元素<=軸點 array[begin] = array[end]; begin++; break; } } while (begin<end) { if (pivot > array[begin])//左邊元素<軸點 begin++; else //左邊元素>=軸點 { array[end] = array[begin]; end--; break; } } } array[begin]=pivot; return begin; } }

輸出:
在這裡插入圖片描述