最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA算法起步之快速排序實例

 更新時間:2014年02月10日 15:13:17   作者:  
這篇文章主要介紹了JAVA算法起步之快速排序實例,需要的朋友可以參考下

快速排序一聽這個名字可能感覺很快,但是他的算法時間復雜度最壞情況卻跟插入排序是一樣的。之所以成為快速排序是因為他的平均效率比堆排序還要快,快速排序也是基于分治思想與歸并排序差不多,但是快速排序是原址的,直接在原數(shù)組操作不需要再開辟新的存儲空間。快速排序的思想很簡單,就是選定一個關鍵字k將原數(shù)組分成兩份g1與g2,g1中所有的元素都比k小或者相等,而g2中所有的數(shù)據(jù)都比k大或者等于,這樣對g1與g2分別進行快速排序,最終我們得到的就是一個有序的數(shù)組。代碼中的sort方法就是對剛才語句的描述。而關鍵的算法就是去尋找k的位置將原數(shù)組分為大小兩部分的過程。方法getPlocation就是快速排序的核心。他的實現(xiàn)原理有點像插入排序只是有點像。每次都把map中end位置的元素作為關鍵字,通過與end元素對比將數(shù)組分成大小兩部分,而i與j則是兩個分割線,i與j之間的數(shù)都是比core大的元素,i與j就像一條貪吃蛇,當j的下一個數(shù)比core大的時候j+1,i到j的長度增大了,而如果比core小的話,i與j都向前走一下,并將那個小數(shù)放在i的前面。這樣循環(huán)一遍后,start到end-1之間就是按大小分開的,最后將core放在中間,將core的位置返回就是分界線了。

復制代碼 代碼如下:

public class QuickSort {
 public int getPlocation(int[] map,int start,int end){
  int core=map[end];
  int i=start-1;
  for(int j=start;j<=end-1;j++){
   if(map[j]<=core){
    i++;
    int cache=map[j];
    map[j]=map[i];
    map[i]=cache;
   }
  }
  i++;
  map[end]=map[i];
  map[i]=core;
  return i;
 }
 public void sort(int[] map,int start,int end){
  if(start<end){
  int p=getPlocation(map, start, end);
  sort(map, start, p-1);
  sort(map,p+1,end);
  }
 }
 public static void main(String[] args) {
  int[] map=new int[]{4,1,5,3,7,12,65,7};
  QuickSort qs=new QuickSort();
  qs.sort(map, 0, map.length-1);
  for (int i = 0; i < map.length; i++) {
   System.out.println(map[i]);
  }
 }
}

相關文章

  • 解決IDEA克隆代碼后在右下角沒有git分支的問題

    解決IDEA克隆代碼后在右下角沒有git分支的問題

    這篇文章主要介紹了解決IDEA克隆代碼后在右下角沒有git分支的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • springboot整合redis集群過程解析

    springboot整合redis集群過程解析

    這篇文章主要介紹了springboot整合redis集群過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • java中使用logger打印日志有哪些坑

    java中使用logger打印日志有哪些坑

    在Java中使用日志記錄器(Logger)打印日志時,確實存在一些常見的坑需要注意,本文就來介紹一下幾種方法,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • spring boot實現(xiàn)自動輸出word文檔功能的實例代碼

    spring boot實現(xiàn)自動輸出word文檔功能的實例代碼

    這篇文章主要介紹了spring boot實現(xiàn)自動輸出word文檔功能的實例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • SpringBoot使用自動配置xxxAutoConfiguration

    SpringBoot使用自動配置xxxAutoConfiguration

    這篇文章介紹了SpringBoot自動配置xxxAutoConfiguration的使用方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • java 中RandomAccess接口源碼分析

    java 中RandomAccess接口源碼分析

    這篇文章主要介紹了java 中RandomAccess接口源碼分析的相關資料,需要的朋友可以參考下
    2017-05-05
  • Java Web三層架構的配置詳解

    Java Web三層架構的配置詳解

    這篇文章主要介紹了Java Web三層架構的配置方法,需要的朋友可以參考下
    2014-10-10
  • JavaWeb中過濾器Filter的用法詳解

    JavaWeb中過濾器Filter的用法詳解

    過濾器通常對一些web資源進行攔截,做完一些處理器再交給下一個過濾器處理,直到所有的過濾器處理器,再調用servlet實例的service方法進行處理。本文將通過示例為大家講解JavaWeb中過濾器Filter的用法與實現(xiàn),需要的可以參考一下
    2022-08-08
  • 初學者Android studio安裝圖文詳解

    初學者Android studio安裝圖文詳解

    本文給大家分享android studio 安裝圖文詳解包括下載安裝及遇到的問題,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-09-09
  • Nacos后臺頻繁打印get changedGroupKeys:[]的問題及解決

    Nacos后臺頻繁打印get changedGroupKeys:[]的問題及解決

    這篇文章主要介紹了Nacos后臺頻繁打印get changedGroupKeys:[]的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01

最新評論

洪雅县| 东乡族自治县| 武安市| 万州区| 辽宁省| 多伦县| 南平市| 建平县| 东阳市| 廊坊市| 陆河县| 时尚| 汉源县| 思南县| 大新县| 博客| 河南省| 隆子县| 淳安县| 惠来县| 米泉市| 松溪县| 平和县| 金乡县| 桃园县| 石柱| 夏邑县| 长沙市| 丽江市| 海原县| 水富县| 正安县| 肇州县| 巩义市| 曲水县| 张掖市| 吉隆县| 平舆县| 个旧市| 台东县| 罗定市|