var array =[1
,4,-
8,-3
,6,12
,9,8
];function
compare
(val1,val2)
;array.
sort
(compare)
;document.
write
(array)
;
sort()方法按照公升序排列陣列項,會呼叫每個陣列項的tostring()轉型方法,然後比較得到的字串。tostring()方法是把布林值或booleanobject轉換為字串,並返回結果。
compare()函式方法是乙個比較函式,作為sort()方法的引數。
var array =[1
,4,-
8,-3
,6,12
,9,8
];function
sort
(arr)}}
}sort
(array)
;document.
write
(array)
;
(1)比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個位置。(2)對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
(3)針對所有的元素重複以上的步驟,除了最後乙個。 (4)持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
var array =[1
,4,-
8,-3
,6,12
,9,8
];function
quicksort
(arr)
//定義中間值的索引
var index = math.
floor
(arr.length/2)
;//取到中間值
var temp = arr.
splice
(index,1)
;//定義左右部分陣列
var left =
;var right =
;for
(var i=
0;i)else
}return
quicksort
(left)
.concat
(temp,
quicksort
(right));
}document.
write
(quicksort
(array)
);
math.floor(x)方法是向下取整,返回小於或等於x的最接近的整數。splice(index,num,item)方法是向陣列中新增專案,或是從陣列中刪除專案,並返回被刪除的專案。
(1)index是整數,被操作專案所在的位置(必須)
(2)num是整數,要刪除的專案的數量,如果為0,表示不刪除(必須)
(3)item是向陣列中新增的新專案,可以是多個(可選) push()方法是向陣列末尾新增乙個或多個新專案並返回新陣列的長度
concat()方法連線兩個或多個陣列,不會改變原有陣列,返回乙個新陣列
var array =[1
,4,-
8,-3
,6,12
,9,8
];function
insertsort
(arr)
;//插入
arr[j+1]
= temp;}}
}insertsort
(array)
document.
write
(array)
;
(1)從第乙個元素開始,該元素可以認為已經被排序(2)取出下乙個元素,在已經排序的元素序列中掃瞄
(3)如果該元素(已排序)大於新元素,將該元素移到下一位置
(4)重複步驟3,直到找到已排序的元素小於或者等於新元素的位置
(5)將新元素插入到下一位置中 (6)重複步驟2
var array =[1
,4,-
8,-3
,6,12
,9,8
];function
selectsort
(arr)
}//將最小值插入,並將原來位置的最小值刪除
arr.
splice
(i,0
,min)
; arr.
splice
(minindex+1,
1);}
}selectsort
(array)
;document.
write
(array)
;
(1)在未排序序列中找到最小(大)元素 (2)並存放到排序序列的起始位置(3)然後,再從剩餘未排序元素中繼續尋找最小(大)元素
(4)然後放到已排序序列的末尾。 (5)以此類推
function
order
(arr)
} mid=arr[i]
;// 將陣列最後乙個元素的值賦給中間變數;
arr[num]
=mid;
// 將中間變數賦給最大值的元素;
arr[i]
=max;
// 將最大值賦給陣列最後乙個元素;
}return arr;
}
1.獲取陣列中最大的元素var arr=[1
,2,4
,6,3
,7,5
];var max=0;
for(
var i=
0;i)}
2.把最大值放到陣列最後:
*定義乙個中間變數來交換最大值和最後乙個元素的值;
*定義乙個變數來儲存最大值所在的位置;
var arr=[1
,2,4
,6,3
,7,5
];var len=arr.length;
var max=0;
var num=0;
var mid=0;
for(
var i=
0;imid=arr[len-1]
;// 將陣列最後乙個元素的值賦給中間變數;
arr[num]
=mid;
// 將中間變數賦給最大值的元素;
arr[len-1]
=max;
// 將最大值賦給陣列最後乙個元素;
// [1,2,4,6,3,5,7];
3.使用第二重迴圈來執行第2步:var arr=[1
,2,4
,6,3
,7,5
];var len=arr.length;
var max=0;
var num=0;
var mid=0;
for(
var i=len-
1;i>
0;i--)}
mid=arr[li]
; arr[num]
=mid;
arr[i]
=max;
4.把第3步封裝在函式中:function
order
(arr)
} mid=arr[i]
;// 將陣列最後乙個元素的值賦給中間變數;
arr[num]
=mid;
// 將中間變數賦給最大值的元素;
arr[i]
=max;
// 將最大值賦給陣列最後乙個元素;
}return arr;
}
數字排序為公升序排列!
這種方法會改變原始陣列!
js陣列排序的幾種方法
sort 陣列物件排序 其原理是氣泡排序,即比較相鄰的元素,如果第乙個比第二個大,就交換他們兩個。var arr console.log arr console.log arr 0 var compare function obj1,obj2 else if val1 val2 else conso...
JS陣列的排序
var array 1 4,8,3 6,12 9,8 function compare val1,val2 array.sort compare document.write array sort 方法按照公升序排列陣列項,會呼叫每個陣列項的tostring 轉型方法,然後比較得到的字串。tostr...
JS陣列排序
function bubblesort array return array vararray1 2,5,1,9 bubblesort array1 1,2,5,9 function usesort array var array1 2,5,1,9 usesort array1 在資料集中,選擇乙個...