JS 各种排序
var arr = [ 23,24,4,5,7]; //冒泡排序 function bubble( a ){ var temp = ''; for( var i =0 ; i<a.length; i++){ for( var j=i+1; j< a.length; j++){ if( a[i] < a[j] ){ temp = a[i]; a[i] = a[j]; a[j] = temp; } } } return a; } //插入排序 function insert( _arr ){ var temp = 0 ,x = 0; for( var i = 1; i< _arr.length; i++ ){ temp = _arr[i]; x = i; while( x > 0 && temp < _arr[x-1] ){ _arr[x] = _arr[x-1]; x--; } _arr[x] = temp; } return _arr; } console.dir( insert(arr) ); //希尔排序 function shell( arr ){ var d = arr.length/2 ,x =0 ; while( d >= 1 ){ for( var i = d; i< arr.length; i+=d ){ temp = arr[i]; x = i; while( x > 0 && temp < arr[x-d] ){ arr[x] = arr[x-d]; x-=d; } arr[x] = temp; } d = d/2; } return arr; } //堆排序 var arr = [6,3,28,65,99,15,76,88]; function initHeap( arr ){ var p = parseInt( arr.length/2 ); var ch1 = 0 ,ch2 = 0 , cur = 0 ,temp =0; while( p >= 0 ){ ch1 = 2*p+1; ch2 = 2*p+2; cur = ch1 ; if( arr[ch2] > arr[ch1] ){ cur = ch2; } if( arr[cur] > arr[p] ){ temp = arr[p]; arr[p] = arr[cur]; arr[cur] = temp; } p--; } return arr; } function heapSort( arr ){ var ret = [] , len = arr.length; for( var i=0;i<len ;i++ ){ arr = initHeap( arr ); ret.push( arr.shift() ); } return ret; } console.dir( heapSort(arr) ); //选择排序 var a = [3,1,2,5,6]; function select( arr ){ var k = 0, temp = 0; for( var i=0;i<arr.length;i++){ k = getMinKey( arr, i ); temp = arr[i]; arr[i] = arr[k]; arr[k] = temp; } return arr; } function getMinKey( arr , start ){ for(var i=start;i<arr.length;i++){ if( arr[i] < arr[start] ) start = i; } return start; }
生命只有一次。

浙公网安备 33010602011771号