陣列的排序方法

2021-08-21 21:08:46 字數 1762 閱讀 4894

簡單選擇排序:基本思想如下

在要排序的陣列中,選擇出最小(或者最大)的一

個數與第乙個位置的數交換;然後在剩下的數當

中再找最小(或最大)的與第二個位置的數交換

依次類推,直到第n-1個元素(倒數第二個)和第

n個元素(最後乙個數)比較為止。

簡單選擇排序

第乙個元素先不動,剩下的元素中找最小值,再與第一位比較,小於第一位就交換

之後第二位不動,後面的找最小值,再比較交換,以此類推

原始資料

找出最小1  與4交換  

找出最小2  與5交換  

找出最小3  與5交換  

找出最小4  與5交換  

//簡單排序[4,5,2,3,1]

int arr = ;

/*簡單選擇排序

原始資料

找出最小1  與4交換  

找出最小2  與5交換  

找出最小3  與5交換  

找出最小4  與5交換  

*/for(int i=0;iarr[j])

}if(f)

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

}陣列的排序:

氣泡排序的基本思想:

在要排序的陣列中,對當前還未排好序的範圍

內的全部數,自上而下(自左到右)對相鄰的兩

個數依次進行比較和調整,讓較大的往下沉(

或向右移),較小的往上冒(或向左移)。即:

每當兩相鄰的數比較後他們的順序與排序要求

相反時,就將他們互換。

氣泡排序的每一步詳情

第一輪:找最大值

4>5  false  

5>2  true  

5>3  true  

5>1  true   --排出5

第二輪:找第二大

4>2  true  

4>3  true  

4>1  true   --排出4

第三輪:找第三大

2>3  false  

3>1  true   --排出3

第四輪:找第四大

2>1  true   --排出2 

/*氣泡排序[6,3,1,2,5,4]*/

int arr1 = ;

/* 要求陣列裡的元素 按照從小到大排序*/

for(int i=0;iarr1[j+1])

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

}氣泡排序的改進:

對氣泡排序的常見的改進方法是 加入乙個標誌性的

變數,用於標誌某一輪排序過程中是否有資料交換,

如果沒有進行資料交換,則說明資料已經按照要求

排列好,可立即結束排序,避免不必要的比較過程。

/*氣泡排序[6,3,1,2,5,4]*/

int arr1 = ;

/* 要求陣列裡的元素 按照從小到大排序*/

for(int i=0;iarr1[j+1])

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

}//此輪結束,檢視開關的狀態

if(f)

}工具類arrays裡的排序方法:

arrays.sort(陣列名):對基本資料型別的陣列

與引用型別的陣列都可排序,底層定義了排序的規則。

int arr1 = ;

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

陣列的排序方法

2 選擇排序法 演算法思想 用第乙個和其餘數進行比較,如果其他數比第乙個小,則交換倆數。再用第二個和它以後其餘數進行比較,如果其他數比第二個小,則交換倆數 為 同上篇文章一樣 int array new int 10 這裡我選擇隨機生成10個1 100的數值 random rand new rand...

陣列排序方法

var arr 6 3,5 1,9 4,7 8,2 1 氣泡排序 比較相鄰的兩項,如果第一項比第二項大,則交換他們。氣泡排序 array.prototype.bubblesort function arr.bubblesort 2 選擇排序 原址比較排序演算法。找到資料結構中的最小值放在第一位,然後...

陣列排序(方法)

var arr 11 45,2 32,89 0 arr.sort function a,b document.write arr var arr 11 45,2 32,89 0 arr.reverse arr document.write arr 概念 陣列中相鄰元素兩兩比較,如果第乙個元素大於第二...