let a =[1
,6,4
,33,9
,7,2
]console.
log(a.
sort
((a, b)
=> a - b)
)
// 交換方法1
function
swap1
(a,b)
// 交換方法2
function
swap2
(a,b)
// 交換方法3
function
swap3
(a,b)
從陣列第一項開始,每一項與下一項進行比較,如果大於下一項則互換位置,換完一輪則第一項是最小的一項
再從第二項開始比較,以此類推
因此一共需要比較陣列長度-1輪,每輪需要比較陣列長度-1再減去已比較輪數
// 實現陣列中的數字交換
function
swap
(arr,i,j)
// 氣泡排序
array.prototype.
bubble
=function
bubble()
}if(!flag)
break
; flag =
false;}
return that;
}let a =[1
,6,4
,33,9
,7,2
]console.
log(a.
bubble()
)
先將陣列第一項插入新陣列
再將陣列每一項新陣列中的每一項進行比較
如果大於則插入比較項之後,反之則插入比較項之前
// 氣泡排序
array.prototype.
insert
=function
insert()
if(j ===0)
}}return arr;
}let a =[1
,6,4
,33,9
,7,2
]console.
log(a.
insert()
)
找出中間項
每一項與中間項進行比較
如果大於中間項則插入儲存大於中間項數值的陣列,反之插入儲存小於中間項數值的陣列
將每個新陣列都進行快速排序(遞迴)
最終將左中右三個陣列或數值依次拼接
array.prototype.
quick
=function
quick()
let middleindex = math.
floor
(that.length /2)
, middlevalue = that.
splice
(middleindex,1)
[0],
arrleft =
, arrright =
;for
(let i =
0; i < that.length; i++
)return quick.
call
(arrleft)
.concat
(middlevalue, quick.
call
(arrright));
}let a =[1
,6,4
,33,9
,7,2
]console.
log(a.
insert()
)
JS排序演算法
function insertsort arr endif status new date st ms return arr function shellsort arr while increment 1 status new date st ms return arr function shel...
排序演算法(JS)
自己整理一下資料結構的排序演算法,用js寫了一下,測試正確。插入排序 var table 32,26,87,72,26,17 for var i 0 i 0 temp0 alert i table 快速排序 快速排序是找出乙個元素 理論上可以隨便找乙個 作為基準 pivot 然後對陣列進行分割槽操作...
js排序演算法
常見內部排序演算法有 插入排序 希爾排序 選擇排序 氣泡排序 歸併排序 快速排序 堆排序 技術排序等 從第乙個元素開始,該元素被當成已排序 取出下乙個元素,在已排序的元素序列中從後向前掃瞄 如果該元素大於新元素,將該元素移到下一位置 重複3步驟,直到找到已排序的元素小於或者等於新元素,將新元素插入到...