Java快速排序QuickSort(實(shí)例)
快速排序
----------------------------------------------------------------------
思想

如上圖:每趟快速排序開始時(shí),設(shè)置一個(gè)key,key=array[low],然后由high向左,找到小于key的值,復(fù)制到low位置,然后再由low向右找到大于key的值,復(fù)制到high位置,直到low=high結(jié)束,
將key的復(fù)制到low位置。
上圖中第一輪劃分后找到32的位置,然后遞歸的對(duì)32左邊和右邊的進(jìn)行排序。
代碼:
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];
//從后往前找到第一個(gè)比key小的數(shù)與array[i]交換;
while(i<j&&array[i]<key)
{
i++;
}
array[j]=array[i];
//從前往后找到第一個(gè)比key大的數(shù)與array[j]交換;
}
array[i]=key;
//一趟快排之后已經(jīng)將key的位置找到。
quickSort(array,left,i-1);
//對(duì)key左邊的進(jìn)行排序
quickSort(array,i+1,right);
//對(duì)key右邊的進(jìn)行排序
}
}
以上這篇Java快速排序QuickSort(實(shí)例)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java用Arrays.asList初始化ArrayList實(shí)例方法
在本篇文章里小編給大家分享的是關(guān)于Java中使用Arrays.asList初始化ArrayList的知識(shí)點(diǎn)內(nèi)容,需要的朋友們參考下。2019-10-10
創(chuàng)建網(wǎng)關(guān)項(xiàng)目(Spring Cloud Gateway)過(guò)程詳解
這篇文章主要介紹了創(chuàng)建網(wǎng)關(guān)項(xiàng)目(Spring Cloud Gateway)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
SpringMVC域?qū)ο蠊蚕頂?shù)據(jù)示例詳解
這篇文章主要為大家介紹了SpringMVC域?qū)ο蠊蚕頂?shù)據(jù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
java類中生成jfreechart,返回圖表的url地址 代碼分享
這篇文章介紹了java類中生成jfreechart,返回圖表的url地址的代碼,有需要的朋友可以參考一下2013-08-08

