您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關怎么在Java項目中利用QuickSort實現一個快速排序功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
快速排序
----------------------------------------------------------------------
思想
如上圖:每趟快速排序開始時,設置一個key,key=array[low],然后由high向左,找到小于key的值,復制到low位置,然后再由low向右找到大于key的值,復制到high位置,直到low=high結束,
將key的復制到low位置。
上圖中第一輪劃分后找到32的位置,然后遞歸的對32左邊和右邊的進行排序。
代碼:
package Sort; import java.util.Arrays; public class QuickSort { public static void main(String[] args) { int array[]={32, 12, 7, 78, 23, 45}; quickSort(array,0,array.length-1); System.out.println(Arrays.toString(array)); } public static void quickSort(int array[],int left,int right) { if(left>=right) { return ; } int i=left; int j=right; int key=array[left]; while(i<j) { while(i<j&&array[j]>key) { j--; } array[i]=array[j]; //從后往前找到第一個比key小的數與array[i]交換; while(i<j&&array[i]<key) { i++; } array[j]=array[i]; //從前往后找到第一個比key大的數與array[j]交換; } array[i]=key; //一趟快排之后已經將key的位置找到。 quickSort(array,left,i-1); //對key左邊的進行排序 quickSort(array,i+1,right); //對key右邊的進行排序 } }
看完上述內容,你們對怎么在Java項目中利用QuickSort實現一個快速排序功能有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。