摘要:插入排序插入排序是稳定的排序方法时间复杂度冒泡排序插入排序是稳定的排序方法时间复杂度快速排序插入排序是不稳定的排序方法时间复杂度选择排序简单选择排序这种简单选择排序是稳定的排序方法时间复杂度堆排序堆排序是
1.插入排序
function insertSort(array){
var i = 0,
j = 0,
len = array.length,
flag = 0
for(i=1; i=0 && flag < array[j]; j--){
array[j+1] = array[j]
}
array[j+1] = flag
}
}
}
插入排序是稳定的排序方法
时间复杂度 O(n²)
2.冒泡排序function bubbleSort(array){
var i = 0,
j = 0,
len = array.length
for(i=0; i
插入排序是稳定的排序方法
时间复杂度 O(n²)
3.快速排序
function partition(array, low, high){
var flag = array[low]
while(low=flag && low
插入排序是不稳定的排序方法
时间复杂度 O(nlogn)
4.选择排序
简单选择排序
function selectSort(array){
var i = 0,
j = 0,
temp = 0,
len = array.length
for(i=0; i< len; i++){
j = array.indexOf(Math.min.apply(null, array.slice(i)))
if(i!==j){
temp = array[i]
array[i] = array[j]
array[j] = temp
}
}
}
这种简单选择排序是稳定的排序方法
时间复杂度 O(n²)
堆排序
function HeapAdjust(array, s, m){
var key = array[s]
for(var j = 2*s; j<=m; j*=2){
if(j= array[j]){
break
}
array[s] = array[j]
s = j
}
array[s] = key
}
function heapSort(array){
array.unshift(0)
var i = 0,
length = array.length - 1
for(i=Math.floor(length/2); i>0; i--){
HeapAdjust(array, i, length)
}
for(i=length; i>0; --i){
var temp = array[i]
array[i] = array[1]
array[1] = temp
HeapAdjust(array, 1, i-1)
}
}
堆排序是不稳定的排序方法
时间复杂度 O(nlogn)
5.归并排序
function merge(left, right){
let result = []
while(left.length && right.length){
if(left[0] <= right[0]){
result.push(left.shift())
}else {
result.push(right.shift())
}
}
if(left.length){
return result.concat(left)
}
if(right.length){
return result.concat(right)
}
}
function mergeSort(array){
if(array.length <= 1){
return array
}
let mid = Math.ceil(array.length / 2),
left = array.slice(0, mid),
right = array.slice(mid)
return merge(mergeSort(left), mergeSort(right))
}
归并排序是不稳定的排序方法
时间复杂度 O(nlogn)
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/88332.html
摘要:下安装开发调试环境从事开发已经近两年了,之前调试一直是通过古老的和配合,自从接触以来一直不习惯这种动态语言的的调试方式,一直想用一用像静态语言那样调试。安装是上的软件包管理工具,类似于上的,非常好用。安装后的软件可以通过命令查看,目录在。 Mac下安装PHP开发调试环境(ngnix+php72+xdebug) 从事php开发已经近两年了,之前调试一直是通过古老的echo和die...
摘要:下载源码包下载源码包最后将添加到中,查看扩展,出现则安装成功安装安装用于对异步客户端的支持重新编译使用命令检测安装的扩展时可能会出现一下警告解决方案在最后一行添加安装同步扩展最后将添加到中,查看扩展,出现则安装成功 1、下载PHP源码包 http://php.net/get/php-7.2.4.... tar -zxvf php-7.2.4.tar.gz cd php-7.2.4 ....
摘要:最近团队在不断完善项目中的单元测试用例,会用到代码覆盖率分析,本来以为应该默认安装了,所以使用来生成报告,但是执行后提示如下错误这是因为没有安装或启用导致。 最近团队在不断完善项目中的单元测试用例,会用到代码覆盖率分析,本来以为 homestead 应该默认安装了 xdebug ,所以使用 phpunit --coverage-html ./tests/codeCoverage 来生成...
阅读 2585·2019-08-30 15:56
阅读 1226·2019-08-30 15:55
阅读 3356·2019-08-30 15:44
阅读 1101·2019-08-30 10:53
阅读 2071·2019-08-29 16:33
阅读 2789·2019-08-29 16:13
阅读 881·2019-08-29 12:41
阅读 1063·2019-08-26 13:56