日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux公社 java算法_Java快速排序算法

發布時間:2023/12/15 linux 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux公社 java算法_Java快速排序算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

快速排序算法思想:

快速排序(Quicksort)是對冒泡排序的一種改進。

快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然后再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。

用一個算法排序圖形象表示了快速排序

一趟快速排序的算法是:

1)設置兩個變量i、j,排序開始的時候:i=0,j=N-1;

2)以第一個數組元素作為關鍵數據,賦值給key,即key=A[0];

3)從j開始向前搜索,即由后開始向前搜索(j--),找到第一個小于key的值A[j],將A[j]和A[i]互換;

4)從i開始向后搜索,即由前開始向后搜索(i++),找到第一個大于key的A[i],將A[i]和A[j]互換;

5)重復第3、4步,直到i=j; (3,4步中,沒找到符合條件的值,即3中A[j]不小于key,4中A[i]不大于key的時候改變j、i的值,使得j=j-1,i=i+1,直至找到為止。找到符合條件的值,進行交換的時候i, j指針位置不變。另外,i==j這一過程一定正好是i+或j-完成的時候,此時令循環結束)

最通俗的講法:

取第一個數跟數組中的其他數比較,小的在左邊大的在右邊,就這樣一直遞歸排序

排序的基本過程

以數組{49,38,65,97,76,13,27,49}為例,選擇第一個元素49為基準

初始化關鍵字: [49,38,65,97,76,13,27,49]

代碼實現:

public static void main(String[] args) {

// TODO Auto-generated method stub

int a[] = {49, 38, 65, 97, 76, 13, 27, 49};//設置一個數組

sort(a,0,a.length-1);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //調用快速排序方法

System.out.println(Arrays.toString(a));? ? ? ? ? ? ? ? //將快速排序過的數組輸出

}

public static void sort(int a[], int left, int right) {

int i, j, key;

if (left > right) {? //這個判斷很重要的,有這個才會在函數遞歸的時候跳出

return;

}

i = left;? ? ? ? ? ? ? ? //左邊第一位開始

j = right;? ? ? ? ? ? //右邊最后一位

key = a[i];? ? //用數組的第一位數做為參考數

while (i < j) {? // 從數組的兩端交替向中間掃描

while (i < j && a[j] >= key){? ? //從右邊開始掃描

j--;

}

//跳出循環說明右邊這個點的數有比參考數小,所以兩個數互換位子,小的到左邊

a[i] = a[j];

while (i

i++;

}

//跟上面同理,只是相反

a[j] = a[i];

}

a[i] = key;? ? ? ? //這是循環到最后的時候 a[j] = a[i];產生重復,i的位置的數應該是key,所以替換回來

sort(a, left, i - 1);? ? ? ? // 對小于key一邊的遞歸排序

sort(a, i + 1, right);? ? ? // 對高于key一邊的遞歸排序

//直到兩邊排序完畢,在以上中的if判斷中跳出這個方法成功快速排序

}

總結

以上是生活随笔為你收集整理的linux公社 java算法_Java快速排序算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。