利用遞迴演算法排序
阿新 • • 發佈:2019-02-03
package com.sort; import java.util.Arrays; public class Test{ private static int partition(int data[],int low,int high){//分治 int key = data[low]; while(low<high){ while(low<high && data[high]>key)//從右向左 high--; data[low] = data[high]; while(low<high && data[low]<key)//從左向右 low++; data[high] = data[low]; } data[low] = key;//把軸元素放在軸所在地位置 return low;//返回軸所在的位置 } private static void quickSort(int data[],int low,int high){//遞迴 int q; if(low<high){ q = partition(data,low,high); quickSort(data,q+1,high); quickSort(data,low,q-1); } } public static void main(String args[]){ int a[] = new int[]{7,4,6,10,3,5,20}; quickSort(a,0,a.length -1); System.out.println(Arrays.toString(a)); } }