各种排序方法(冒泡,快速,插入,选择),二分查找

此页面是否是列表页或首页?未找到合适正文内容。

各种排序方法(冒泡,快速,插入,选择),二分查找

标签:快速排序冒泡排序startselect[]funelseconcat冒泡

<script>
var list = [25,15,60,24,30,70,10,9,8];
//冒泡排序
function bubble(list) {
var len = list.length,n
for (var i =0;i<len;i++){
//i为0:可以确定最小值,i为1:确定第二小的值 …
for (var j=i+1;j<len;j++){
if(list[i]>list[j]){
n = list[i]
list[i] = list[j]
list[j] = n
}
}
}
return list
}
//选择排序
function select(list) {
var len = list.length,n,min
for (var i =0;i<len;i++){
min = list[i]
for (var j=i+1;j<len;j++){
if(min>list[j]){
n = list[j]
list[j] = min
min = n
}
}
list[i] = min
}
return list
}
//快速排序
function quick(list) {
if(list.length<=1) return list;
var left=[],right=[],point;
point = list.pop();
for (var i =0 ; i<list.length ; i++){
if(point<list[i]){
right.push(list[i])
}else {
left.push(list[i])
}
}
return quick(left).concat([point],quick(right))
}
//插入排序
function insert(list) {
var arr=[list[0]],len=list.length,key,j
for (var i = 1; i<len;i++){
key = list[i],j=i-1
while (j>=0 && key<arr[j]){
arr[j+1]= arr[j]
j–
}
arr[j+1] = key
}
return arr
}
//二分查找
function binaryFind(list,num,start,end) {
start = start || 0,end = end || list.length;
var mid = Math.floor((start + end) / 2);
if(list[mid] == num){
return mid
}else if(list[mid]>num){
return binaryFind(list,num,start,mid)
}else {
return binaryFind(list,num,mid,end)
}
}
</script>

  

各种排序方法(冒泡,快速,插入,选择),二分查找

标签:快速排序冒泡排序startselect[]funelseconcat冒泡

原文地址:http://www.cnblogs.com/jiebba/p/7699174.html

作者: 雨林木风

为您推荐

返回顶部