就是將陣列的資料迴圈並排序,重新組成新的陣列,就是氣泡排序
例如:
//這裡我們先定義乙個隨機數組
var arr =
[10000
,5888
,12000
,6999
,7000
,3000
,4500
,1200
,6000
]//首先迴圈陣列,來遍歷每一項的值
for(
var i=
0; i}console.
log(arr)
;//最後會得到
//(9) [12000, 10000, 7000, 6999, 6000, 5888, 4500, 3000, 1200]
使用雙迴圈來進行排序,外部迴圈控制所有的回合,
內部迴圈代表每一輪的冒泡處理,進行變數的比較與交換。
下面我們就來寫乙個例子來練習氣泡排序:
例題:下面陣列每次會從最大的值依次消除到最小,請問需要迴圈幾遍來全部消除
var arr =
[10000
,5888
,12000
,6999
,7000
,3000
,4500
,1200
,6000
]//按照題目可以得出第一次是 10000,5888,3000,1200
// 第二次是12000,6999,4500
// 第三次是7000,6000,就需要3次迴圈
for(
var i=
0; i// console.log(num);
}//最後得出的就是最前面的最大值
console.
log(arr.length)
;
function
fn(data)
} n--
}return data}fn
(arr)
遞迴就是函式的自我呼叫,就是在函式中呼叫自己。
首先要有判斷結束的條件,還有沒有滿足條件的呼叫
例如:最簡單的1到100值的相加
let i=0;
function
fn(num)
//如果不等於1,就讓值加函式呼叫100-1,以此類推。
return num+
fn(num-1)
}console.
log(fn(
100));
//將100作為實參傳進去
//列印出來就是1到100相加的結果
遞迴函式特點:
每次呼叫都會有一次返回
遞迴函式中必須有終止語句。
每一級函式呼叫時都有自己的變數
遞迴會消耗大量記憶體,在實際開發中很少使用
小例子:
const arr =[,
,,],
},],
},,,
];將上面的json資料遞迴平鋪到陣列裡面
let list=
;function
fn(arr)
list.
push
(item)
list.
foreach
(item=>)}
);}fn
(arr)
console.
log(list)
;//列印結果 [, , , , , , ]
// 0:
// 1:
// 2:
// 3:
// 4:
// 5:
// 6:
// length: 7
關於氣泡排序的for迴圈理解
氣泡排序 本次排序時從小到大,把數值大的數往後排 a 13,2,341,1,54,5,2,5,6 一共9個數 defbubble sort a for i in range len a 1 長度 1代表後面8個最大的數已經排好了,最後乙個數就不用排了 count 0for j in range le...
關於氣泡排序的for迴圈理解
氣泡排序 本次排序時從小到大,把數值大的數往後排 a 13,2,341,1,54,5,2,5,6 一共9個數 defbubble sort a for i in range len a 1 長度 1代表後面8個最大的數已經排好了,最後乙個數就不用排了 count 0for j in range le...
氣泡排序以及氣泡排序的優化
很早接觸過氣泡排序法,但一直沒有真正的理解,只是為了記住而學習,今天又重新看了一下,其實氣泡排序法第一次排序會把最大的冒到最上面,第二次會把次大的泡冒到最大的後面,一次類推 另外在排序的次數上會逐漸減少。看 void bubble sort int a,int n 其實還可以優化一下,當發現沒有進行...