sort.js
/**
* @description: 氣泡排序1 最蠢兩兩比較替換
* @param arr
* @return:
*/const bubble1 = (arr) =>
}} return arr
}
/**
* @description: 氣泡排序2 避免公升序比較 利用boolean
* @param arr
* @return:
*/const bubble2 = (arr) =>
}if (change) break
} return arr
}
/**
* @description: 氣泡排序3
* @param arr
* @return:
*/const bubble3 = (arr) =>
}i = lastindex
} return arr
}
/**
* @description: 選擇排序
* @param arr
* @return:
*/const select = (arr) =>
let tmp = arr[minindex]
arr[minindex] = arr[i]
arr[i] = tmp
} return arr
}
const select1 = (arr) =>
// console.log(minindex,maxindex,arr[minindex],arr[maxindex])
for (let j = i + 1; j < arr.length - i - 1; j++)
// console.log(minindex,maxindex,arr[minindex],arr[maxindex],i,arr.length-1-i)
let tmp = arr[minindex]
arr[minindex] = arr[i]
arr[i] = tmp
// if(i ===maxindex )
tmp = arr[maxindex]
arr[maxindex] = arr[arr.length - 1 - i]
arr[arr.length - 1 - i] = tmp
} return arr
}
/**
* @description: 堆排序
* @param arr
* @return:
*/const heap = (arr) =>
while (len > 1)
function shiftdown(index)
arr[index] = nowval
}}
/**
* @description: 插入排序
* @param arr
* @return:
*/const insert = (arr) =>
arr[moveindex] = move
} return arr
function insertindex(index) else
}return left
}}
/**
* @description: 快速排序
* @param arr
* @return:
*/const fast = (arr) =>
function getindex(begin,end)else}}
arr[begin] = tmp
return begin
}}
/**
* @description: 歸併排序
* @param arr
* @return:
*/const merge = (arr) =>
sortarr(0, arr.length)
return arr
function mergearr(begin, mid, end)
return arr
//常規 二分步長 最差n**2
function getsteparr()
} //最優步長序列 最差n**(4/3)
function getnetsteparr()else
if(step>=len) break
myarr.unshift(step)
k++}
return myarr
} function sort(step){
for(let col = 0;colcol && arr[cur]common.js
main.jsrequire後呼叫即可!
隨時要手撕的七種排序演算法
隨時要手撕的七種排序演算法 1.快排 def qsort arr def sort arr,start,end if start end return i,j start,end key arr start while i j 從右邊找起 while i j and arr j key j 1 ar...
七種排序演算法
排序方法 平均情況 最好情況 最壞情況 輔助空間 穩定性插入排序 o n 2 o n o n 2 o 1 穩定希爾排序 o n log n o n 2 o n 1.3 o n 2 o 1 不穩定選擇排序 o n 2 o n 2 o n 2 o 1 不穩定氣泡排序 o n 2 o n o n 2 o ...
演算法基礎篇 七種內排序演算法C 實現
七種內排序演算法,目前只寫了 原理解析待補充 1.交換類排序 冒泡 快排 2.選擇類排序 選擇 堆排序 3.插入類排序 直接插入 希爾 4.歸併排序 測試用例 51 2 4 3 3 10100 293 123 212 293 434 5 12 439 3 todo 原理 複雜度解析與穩定性解析。in...