java 算法之快速排序?qū)崿F(xiàn)代碼
java 算法之快速排序?qū)崿F(xiàn)代碼
摘要: 常用算法之一的快速排序算法的java實(shí)現(xiàn)
原理:選擇一個基準(zhǔn)元素,通常選擇第一個元素或者最后一個元素,通過一趟掃描, 將待排序列分成兩部分,一部分比基準(zhǔn)元素小,一部分大于等于基準(zhǔn)元素, 此時基準(zhǔn)元素在其排好序后的正確位置,然后再用同樣的方法遞歸地排序劃分的兩部分。
/**
*
* @author 阿信sxq-2015年7月16日
*
* @param args
*/
public static void main(String[] args) {
int a[] = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 5, 4,
62, 99, 98, 54, 56, 17, 18, 23, 34, 15, 35, 25, 53, 51 };
if (a.length > 0) {//查看數(shù)組是否為空
_quickSort(a, 0, a.length - 1);
}
System.out.println(Arrays.toString(a));
}
public static void _quickSort(int[] arr, int left, int right) {
if (left >= right) {
return;
}
int low = left;
int high = right;
int tmp = arr[low];//數(shù)組的第一個作為中軸
while (low < high) {
while (low < high && arr[high] >= tmp) {
high--;
}
arr[low] = arr[high];//比中軸小的記錄移到低端
while (low < high && arr[low] <= tmp) {
low++;
}
arr[high] = arr[low];//比中軸大的記錄移到高端
}
arr[low] = tmp;//中軸記錄到尾
_quickSort(arr, left, low - 1);//對低字表進(jìn)行遞歸排序
_quickSort(arr, low + 1, right);//對高字表進(jìn)行遞歸排序
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
SpringBoot+Mybatis使用Mapper接口注冊的幾種方式
本篇博文中主要介紹是Mapper接口與對應(yīng)的xml文件如何關(guān)聯(lián)的幾種姿勢,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07
SSH框架網(wǎng)上商城項(xiàng)目第27戰(zhàn)之申請域名空間和項(xiàng)目部署及發(fā)布
這篇文章主要為大家詳細(xì)介紹了SSH框架網(wǎng)上商城項(xiàng)目第26戰(zhàn)之申請域名空間和項(xiàng)目部署及發(fā)布,感興趣的小伙伴們可以參考一下2016-06-06
maven項(xiàng)目無法讀取到resource文件夾的問題
這篇文章主要介紹了maven項(xiàng)目無法讀取到resource文件夾的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
SpringBoot整合Security權(quán)限控制登錄首頁
這篇文章主要為大家介紹了SpringBoot整合Security權(quán)限控制登錄首頁示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
@PathVariable獲取路徑中帶有 / 斜杠的解決方案
這篇文章主要介紹了@PathVariable獲取路徑中帶有 / 斜杠的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10
java遞歸實(shí)現(xiàn)復(fù)制一個文件夾下所有文件功能
這篇文章主要介紹了java遞歸實(shí)現(xiàn)復(fù)制一個文件夾下所有文件功能n次,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-08-08

