java 算法之快速排序?qū)崿F(xiàn)代碼
java 算法之快速排序?qū)崿F(xiàn)代碼
摘要: 常用算法之一的快速排序算法的java實(shí)現(xiàn)
原理:選擇一個(gè)基準(zhǔn)元素,通常選擇第一個(gè)元素或者最后一個(gè)元素,通過一趟掃描, 將待排序列分成兩部分,一部分比基準(zhǔn)元素小,一部分大于等于基準(zhǔn)元素, 此時(shí)基準(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ù)組的第一個(gè)作為中軸 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);//對(duì)低字表進(jìn)行遞歸排序 _quickSort(arr, low + 1, right);//對(duì)高字表進(jìn)行遞歸排序 }
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Java編程基于快速排序的三個(gè)算法題實(shí)例代碼
- Java基于分治法實(shí)現(xiàn)的快速排序算法示例
- Java編程實(shí)現(xiàn)快速排序及優(yōu)化代碼詳解
- java簡單快速排序?qū)嵗馕?/a>
- Java 冒泡排序、快速排序?qū)嵗a
- JAVA一個(gè)快速排序?qū)崿F(xiàn)代碼
- 圖文講解Java中實(shí)現(xiàn)quickSort快速排序算法的方法
- Java編程中快速排序算法的實(shí)現(xiàn)及相關(guān)算法優(yōu)化
- 詳解Java中使用泛型實(shí)現(xiàn)快速排序算法的方法
- 詳解Java雙軸快速排序算法
相關(guān)文章
Java的SpringMVC中控制器返回XML數(shù)據(jù)問題
這篇文章主要介紹了Java的SpringMVC中控制器返回XML數(shù)據(jù)問題,控制器是處理HTTP請(qǐng)求的組件,它們接收來自客戶端的請(qǐng)求,并將其轉(zhuǎn)換為適當(dāng)?shù)捻憫?yīng),這些響應(yīng)可以是動(dòng)態(tài)生成的?HTML?頁面,也可以是JSON或XML格式的數(shù)據(jù),需要的朋友可以參考下2023-07-07springboot+dubbo啟動(dòng)項(xiàng)目時(shí)報(bào)錯(cuò) zookeeper not connect
這篇文章主要介紹了springboot+dubbo項(xiàng)目啟動(dòng)項(xiàng)目時(shí)報(bào)錯(cuò) zookeeper not connected的問題,本文給大家定位問題及解決方案,結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下2023-06-06Java的wait(), notify()和notifyAll()使用心得
本篇文章是對(duì)java的 wait(),notify(),notifyAll()進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-08-08Java連接SAP RFC實(shí)現(xiàn)數(shù)據(jù)抽取的示例詳解
這篇文章主要為大家學(xué)習(xí)介紹了Java如何連接SAP RFC實(shí)現(xiàn)數(shù)據(jù)抽取的功能,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,需要的可以了解下2023-08-08SpringBoot利用ThreadPoolTaskExecutor批量插入百萬級(jí)數(shù)據(jù)
在處理大量數(shù)據(jù)時(shí),為了提高效率和性能,通常需要采用批量插入的方式,本文主要介紹了SpringBoot利用ThreadPoolTaskExecutor批量插入百萬級(jí)數(shù)據(jù),具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03SpringBoot在自定義類中調(diào)用service層等Spring其他層操作
這篇文章主要介紹了SpringBoot在自定義類中調(diào)用service層等Spring其他層操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06