將陣列升序排列的方法與氣泡排序
阿新 • • 發佈:2019-01-07
example array : [4,6,1,4,7,5,9,3]
更新使用JS中的sort()方法排序 :
程式碼如下
<script type="text/javascript">
var example = [4,6,1,40,7,5,9,3];
// var re = example.sort();
// 自帶的sort()方法是按第一個字元排序的,因此會把7排在40後面,需要手動加一個函式,其引數是固定的,函式名可以自定
function sort_num(x,y){
return x-y; //x-y為升序,y-x為降序
}
// 因此在呼叫sort方法時,需要將sort_num函式傳入,切記不是將sort_num()傳入!
var re = example.sort(sort_num);
document.write(re);
</script>
—————————-分割線——————————
更新氣泡排序:
程式碼如下
<script type="text/javascript">
function sort_array (arr){
for (var i=0;i<arr.length-1;i++) { //外層迴圈控制迴圈的輪數
for (var j=0;j<arr.length-1-i;j++) { //內層迴圈控制這這一輪元素比較的次數,-i是因為每次比完後,靠右的元素均為較大值,不需再比較
if (arr[j]>=arr[j+1]) {
var temp = arr[j]; //定義臨時變數,當作陣列元素交換的容器
arr[j]= arr[j+1 ];//元素交換位置
arr[j+1] = temp;
}
}
}
return arr;
}
var example = [4,6,1,4,7,5,9,3];
document.write(sort_array(example));
</script>
——————————–分割線———————————–
JS程式碼演算法如下:
<script type="text/javascript">
function sort_array(arr){
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[j]; //元素交換位置
arr[j]= arr[i];
arr[i] = temp;
}
}
}
return arr;
}
var example = [4,6,1,4,7,5,9,3];
document.write(sort_array(example));
</script>
若有錯漏,歡迎建議和指正.
如果您有更好的方式,期待與您的交流!