各种排序方法(冒泡,快速,插入,选择),二分查找
Posted 小结巴巴吧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了各种排序方法(冒泡,快速,插入,选择),二分查找相关的知识,希望对你有一定的参考价值。
<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>
以上是关于各种排序方法(冒泡,快速,插入,选择),二分查找的主要内容,如果未能解决你的问题,请参考以下文章
Java八股文面试题 基础篇 -- 二分查找算法冒泡排序选择排序插入排序希尔排序快速排序
Java八股文面试题 基础篇 -- 二分查找算法冒泡排序选择排序插入排序希尔排序快速排序
14Java常用类(StringBuffer)排序算法(冒泡排序选择排序插入排序快速排序)查找算法(二分查找)