插入排序
function insertSort(arr){
var key;
for(var j = 1; j < arr.length ; j++){
//排好序的
var i = j - 1;
key = arr[j];
while(i >= 0 && arr[i] > key)
{
arr[i + 1] = arr[i];
i --;
}
arr[i + 1] = key;
}
return arr;
}
快速排序
<script>
function sort(arr){
return quickSort(arr,0,arr.length-1);
function quickSort(arr,l,r){
if(l<r){
var mid=arr[parseInt((l+r)/2)],i=l-1,j=r+1;
while(true){
//大的放到右边,小的放到左边, i与j均为游标
while(arr[++i]<mid);
while(arr[--j]>mid);
if(i>=j)break;//判断条件
var temp = arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
quickSort(arr,l,i-1);
quickSort(arr,j+1,r);
}
return arr;
}
}
function main(){
var list=new Array(49,38,65,97,76,13,27);
document.write(sort(list).valueOf());
}
main();
</script>
冒泡法
function bullSort(array){
var temp;
for(var i=0;i<array.length;i++){
for(var j=array.length-1;j>i;j--){
if(array[j]<array[j-1]){
temp = array[j];
array[j]=array[j-1];
array[j-1]=temp;
}
}
}
return array;
}
递归算法
重点内容
function factorial(num){
if(num<=1){
return 1;
}else{
return num*arguments.callee(num-1);
}
求两个字符串的相似度,返回相似度百分比
function Levenshtein_Distance_Percent(s,t){
var l=s.length>t.length?s.length:t.length;
var d=Levenshtein_Distance(s,t);
return (1-d/l).toFixed(4);
}
求三个数字中的最小值
function Minimum(a,b,c){
return a<b?(a<c?a:c):(b<c?b:c);
}