【数组】—冒泡排序选择排序---【巷子】
生活随笔
收集整理的這篇文章主要介紹了
【数组】—冒泡排序选择排序---【巷子】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/*
什么是冒泡排序:從頭到尾比較相鄰的兩個數的大小,如果符合條件則進行比較
【注】:從小到大進行排序
假設有一個數組 var arr = [9,8,7,6,5,4]; 我們想要進行這個數組進行排序那么按照冒泡排序的規則我們可以進行演變和嘗試
第一次比較
9 8 7 6 5 4
8 9 7 6 5 4
8 7 9 6 5 4
8 7 6 9 5 4
8 7 6 5 9 4
8 7 6 5 4 9
通過第一輪的比較我們將最大的數字9比較了出來,但是這并不是我們想要的最終結果,所以我們還需要繼續比較
第二次比較
8 7 6 5 4
7 8 6 5 4
7 6 8 5 4
7 6 5 8 4
7 6 5 4 8
通過第二輪比較我們將最大數字8比較了出來
第三次比較
7 6 5 4
6 7 5 4
6 5 7 4
6 5 4 7
通過比較我們將最大數字7比較了出來
第四次比較
6 5 4
5 6 4
5 4 6
通過比較我們將最大數字6比較了出來
第五次比較
5 4
4 5
通過比較我們將數組5比較了出來
【注】:通過以上演變我們得出一個結論也就是說比較的次數等于數組的長度減一; 每一次的比較內部需要兩兩比較的次數是 數組的長度-1-i
*/
var temp;
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
什么是選擇排序
類似于打擂臺一樣,誰贏了誰就站在第一位
假設有一個數組 var arr = [9,8,7,6,5]; 我們想要進行這個數組進行排序那么按照選擇排序的規則我們可以進行演變和嘗試 第一輪比較
9 8 7 6 5
8 9 7 6 5
7 9 8 6 5
6 9 8 7 5
5 9 8 7 6
第一輪比較出最小的數放在了第一位
第二輪比較
9 8 7 6
8 9 7 6
7 9 8 6
6 9 8 7
第二輪比較出最小的數放在了第一位
第三輪比較
9 8 7
8 9 7
7 9 8
第三輪比較出最小的數放在了第一位
第四輪比較
9 8
8 9
第四輪比較完畢
【總結】:首先看比較次數的規律:數組的長度-1,每輪比較的規律:每次比較的位置都是當前數字的位置+1進行的比較
*/
var temp;
for(var i=0;i<arr.length-1;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
什么是冒泡排序:從頭到尾比較相鄰的兩個數的大小,如果符合條件則進行比較
【注】:從小到大進行排序
假設有一個數組 var arr = [9,8,7,6,5,4]; 我們想要進行這個數組進行排序那么按照冒泡排序的規則我們可以進行演變和嘗試
第一次比較
9 8 7 6 5 4
8 9 7 6 5 4
8 7 9 6 5 4
8 7 6 9 5 4
8 7 6 5 9 4
8 7 6 5 4 9
通過第一輪的比較我們將最大的數字9比較了出來,但是這并不是我們想要的最終結果,所以我們還需要繼續比較
第二次比較
8 7 6 5 4
7 8 6 5 4
7 6 8 5 4
7 6 5 8 4
7 6 5 4 8
通過第二輪比較我們將最大數字8比較了出來
第三次比較
7 6 5 4
6 7 5 4
6 5 7 4
6 5 4 7
通過比較我們將最大數字7比較了出來
第四次比較
6 5 4
5 6 4
5 4 6
通過比較我們將最大數字6比較了出來
第五次比較
5 4
4 5
通過比較我們將數組5比較了出來
【注】:通過以上演變我們得出一個結論也就是說比較的次數等于數組的長度減一; 每一次的比較內部需要兩兩比較的次數是 數組的長度-1-i
*/
var temp;
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
?
?
?
/*什么是選擇排序
類似于打擂臺一樣,誰贏了誰就站在第一位
假設有一個數組 var arr = [9,8,7,6,5]; 我們想要進行這個數組進行排序那么按照選擇排序的規則我們可以進行演變和嘗試 第一輪比較
9 8 7 6 5
8 9 7 6 5
7 9 8 6 5
6 9 8 7 5
5 9 8 7 6
第一輪比較出最小的數放在了第一位
第二輪比較
9 8 7 6
8 9 7 6
7 9 8 6
6 9 8 7
第二輪比較出最小的數放在了第一位
第三輪比較
9 8 7
8 9 7
7 9 8
第三輪比較出最小的數放在了第一位
第四輪比較
9 8
8 9
第四輪比較完畢
【總結】:首先看比較次數的規律:數組的長度-1,每輪比較的規律:每次比較的位置都是當前數字的位置+1進行的比較
*/
var temp;
for(var i=0;i<arr.length-1;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
?
轉載于:https://www.cnblogs.com/nanianqiming/p/7638814.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的【数组】—冒泡排序选择排序---【巷子】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ConcurrentHashMap原理,
- 下一篇: MATLAB表上作业法解决运输问题