一對一直播軟體原始碼,比較常用的陣列排序方式有哪些?
一、簡單的sort排序:
var arr = [1,5,3,87,23]; arr.sort(function(a,b) { return a-b; }) console.log(arr); // 輸出:[1,23,3,5,87]
注:若返回b-a可獲得從大到小的排序;
陣列的sort方法只能實現簡單的按位排序,並不精確。
二、氣泡排序
var arr = [1,5,2,6,3,3,4,56,7,5,5,5,6,7,8]; function fn(arr) { //氣泡排序(以從小到大為例) 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]) { var temp = arr[j]; //交換這兩個值的位置 arr[j] = arr[j+1]; arr[j+1] = temp; } } } return arr; }
三、選擇排序
function fn(arr) { //選擇排序 //用這個數分別和別的數相比較,改變的是索引的位置,每輪結束後才交換為位置 for(var i=0; i<arr.length-1; i++) { //控制外層比較的輪數 var minIndex = i; //先假定一個最小值,定義變數minIndex指向該值的索引 for(var j=i+1; j<arr.length; j++) { if(arr[minIndex]>arr[j]) { minIndex = j; //改變最小索引的指向 } } var temp = arr[i]; //每輪比較結束,將最初假定的最小值和實際最小值交換 arr[i] = arr[minIndex]; arr[minIndex] = temp; } return arr; //將排序後的陣列返回 }
以上就是一對一直播軟體原始碼,比較常用的陣列排序方式有哪些?, 更多內容歡迎關注之後的文章