Java基礎篇 排序

2021-09-05 11:27:04 字數 2455 閱讀 6649

執行結果:

[13, 24, 57, 69, 80]

process finished with exit code 0

二:選擇排序

public class demo3 ;

for (int index = 0; index < arr.length - 1; index++) }}

system.out.println(arrays.tostring(arr));}}

執行結果:

[13, 24, 57, 69, 80]

process finished with exit code 0

三:快速排序

思想:

挖坑填數

1.將基準數挖出形成第乙個坑。

2.由後向前找比他小的數,找到後挖出此數填到前乙個坑中。

3.由前向後找比他大或等於的數,找到後也挖出此數填到前乙個坑中。

再重複執行2,3兩步驟

public class quicksortutils 

}private static int getindex(int arr, int start, int end)

if (i < j)

//3由前向後找比他大或等於的數,找到後也挖出此數填到前乙個坑中。

while (i < j && arr[i] < x)

if (i < j)

}//等上述完畢之後,把基準數填到最後乙個坑位裡

arr[i] = x;

return i;

}}public class test ;

quicksortutils.quicksort(arr, 0, arr.length - 1);

system.out.println(arrays.tostring(arr));}}

執行結果:

[13, 24, 57, 69, 80]

process finished with exit code 0

四:直接插入排序

public class demo4 ;

for (int i = 1; i < arr.length;i++)

}system.out.println(arrays.tostring(arr));}}

執行結果:

[13, 24, 57, 69, 80]

process finished with exit code 0

五:希爾排序

希爾排序嚴格來說是基於插入排序的思想,又被稱為縮小增量排序。

具體流程如下:

1、將包含n個元素的陣列,分成n/2個陣列序列,第乙個資料和第n/2+1個資料為一對...

2、對每對資料進行比較和交換,排好順序;

3、然後分成n/4個陣列序列,再次排序;

4、不斷重複以上過程,隨著序列減少並直至為1,排序完成。

假如有初始資料:25 11 45 26 12 78。

1、第一輪排序,將該陣列分成 6/2=3 個陣列序列,第1個資料和第4個資料為一對,第2個資料和第5個資料為一對,第3個資料和第6個資料為一對,每對資料進行比較排序,排序後順序為:[25, 11, 45, 26,12, 78]。

2、第二輪排序,將上輪排序後的陣列分成6/4=1個陣列序列,此時逐個對資料比較,按照插入排序對該陣列進行排序,排序後的順序為:[11, 12, 25, 26, 45, 78]

**實現:

public class demo7;

for (int r = arr.length / 2; r >= 1; r = r / 2)

arr[j + r] = tmp;}}

system.out.println(arrays.tostring(arr));

}

執行結果:

[11, 12, 25, 26, 45, 78]

process finished with exit code 0

Java排序演算法 基礎篇

前言 開發過程中經常會遇到各種對資料進行排序的事情,在平常使用中資料量小對於排序效能要求不高,但是在資料量以百萬為單位的資料排序時就是對你排序演算法的考驗了,以下總結幾種常用的排序演算法,記住,演算法沒有絕對只有因地制宜。氣泡排序 一 介紹 氣泡排序演算法執行起來非常慢,但是在概念上他是排序演算法中...

java基礎篇《5》 常用陣列排序演算法

氣泡排序演算法 author lucien don public class bublesort n個數要比較n 1輪,外迴圈比較輪數,for int i 0 i1 i for int i 0 i 選擇排序法 author lucien don public class selectsort for...

java基礎 陣列篇

陣列 可以儲存多個元素並且多個元素是 同一種型別的容器 陣列的定義 資料型別 陣列名 資料型別 陣列名 舉例 int a 定義了乙個int型別的陣列變數a int a 定義了乙個int型別 變數a陣列 這兩種方式的定義 雖然寫法不一樣,並且讀法不一樣,但是表達的效果一樣,都是在定義乙個陣列,推薦使用...