线性查找
function search(a,x){ for(var i=0; i<a.length; i++){ if ( a[i] == x ){ return i+1; } } return -1; }
二分法查找(hot)
//在二分法中,a为已经升序排列的数组
function search(a,x){ var low=0, high=a.length-1; while ( low <= high ){ var mid = Math.floor((low+high)/2); if ( a[mid] == x ){ return mid+1; } if ( a[mid] < x ){ low = mid + 1; }else{ high = mid - 1; } } return -1; }
冒泡排序
//一个用的for语句,一个用的while语句,作用一样,纯粹练手。。。
function bubbleSort(a){ var i = a.length-1,j; var temp; for(i; i>0; i--){ for(j=0; j<i; j++){ if(a[j]>a[j+1]){ temp = a[j+1]; a[j+1] = a[j]; a[j] = temp; } } } return a; }
function bubbleSort(a){ var i = a.length-1, j; var temp; while(i>0){ for (j=0; j<i; j++){ if (a[j] > a[j+1]){ temp = a[j+1]; a[j+1] = a[j]; a[j] = temp; } } i--; } return a; }
选择排序
function selectSort(array){ var min, temp; var n = array.length; for (var i=0; i<n; i++){ min = i; for (var j = i+1; j < n; j++){ if (array[min] > array[j]){ min = j; } } if (min != i){ temp = array[i]; array[i] = array[min]; array[min] = temp; } } return array; }
Array.sort()排序
//使用sort()排序 function Qsort(b){ return b.sort(function(a,b){return a>b}); } //生成随机数 function rand(m,n){ return Math.floor(Math.random()*(n-m)+m); } //生成数组 var z=[]; function arr(m,n,l){ for(var i=0; i<l; i++){ z.push(rand(m,n)); } return z; } arr(10,100,12); document.write(Qsort(z));
快速排序(hot)
插入排序
归并排序
数组去重
数组顺序扰乱
数组求交集
数组求并集
数组求差集