版权声明:虽然我很善良,但是原创文章还是问问我再转载哦<( ̄︶ ̄)> https://blog.csdn.net/Vivian_jay/article/details/65635604
一、插入排序
每条新纪录与前面已排序的子序列进行比较,将它插入到子序列中的正确位置。
function insertionSort( arr ) {
var len = arr.length
for (var i = 1; i < len; i++) {
for( var j = i; j > 0; j-- ){
if( arr[j] < arr[j-1]){
arr[j] = arr.splice(j-1, 1, arr[j])[0]
}
}
}
}
稳定性:稳定。
时间复杂度:
最差 | 平均 | 最佳 |
---|---|---|
O(n^2) | O(n^2) | O(n) |
二、冒泡排序
>
function bubbleSort(arr) {
var len = arr.length
for(var i = 0; i < len-1; i++){
for(var j = len - 1; j > i; j-- ){
if (arr[i] > arr[j]) {
arr[i] = arr.splice(j, 1, arr[i])[0]
}
}
}
}
三、选择排序
function selectSort(arr) {
var len = arr.length
for(var i = 0; i < len; i++){
var min = i
for(var j = len - 1; j > i; j-- ){
if (arr[min] > arr[j]) {
min = j
}
}
arr[min] = arr.splice(j, 1, arr[min])[0]
}
}