一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - JAVA算法起步之快速排序實例

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

2019-11-06 11:25java教程網(wǎng) JAVA教程

這篇文章主要介紹了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]);
  }
 }
}

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色综合综合 | 婚前试爱免费看 | 毛片区| 欧美日韩视频在线第一区二区三区 | 国产亚洲精品九九久在线观看 | 国语精彩对白2021 | 成人免费在线视频观看 | 国产女主播在线播放一区二区 | 肉文np高h| 日韩视频免费 | 国产99精品视频 | 日本一区二区三区久久 | 情趣内衣在线观看 | 日本免费在线观看 | 莫莉瑞典1977k | 免费理伦片在线观看全网站 | 99ri精品 | 精品一区二区三区在线视频观看 | 国产不卡视频 | japan孕妇孕交 | 久久永久视频 | 成人免费毛片一区二区三区 | 四虎影院精品在线观看 | 日韩国产成人精品视频人 | 国产尤物精品视频 | 欧美视频在线播放观看免费福利资源 | 亚洲六月丁香六月婷婷蜜芽 | 色综合久久六月婷婷中文字幕 | 91在线播 | 免费看男女做好爽好硬视频 | 精品丰满人妻无套内射 | 欧美艳星julnaann| 欧美黑人一级片 | 加勒比久草 | 热久久免费视频 | 久久re视频这里精品一本到99 | 欧美 亚洲 一区 | 国产成人精品高清在线 | 九九热国产视频 | 美女用手扒开粉嫩的屁股 | 亚偷熟乱区视频在线观看 |