簡單選擇排序:基本思想如下
在要排序的陣列中,選擇出最小(或者最大)的一
個數與第乙個位置的數交換;然後在剩下的數當
中再找最小(或最大)的與第二個位置的數交換
依次類推,直到第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 概念 陣列中相鄰元素兩兩比較,如果第乙個元素大於第二...