var log = console.log.bind(console) // 元素交换 functionexchange(arr ,a , b){ var temp = arr[b]; arr[b] = arr[a]; arr[a] = temp; } functioncompare(arr , count){ //log('2----', arr) for (var i = 0; i < count ; i++) { if (arr[i] > arr[i+1]) { // 相邻元素两两对比 var a = exchange(arr ,i , i+1) //log('3-------',a) } } } functionbubbleSort(array) { //复制数组 var arr = array.slice(0) var len = arr.length; //控制次数 for (var i = 0; i < len; i++) { var count = len- 1 - i compare(arr , count) } return arr; }
二分查找
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Array.prototype.binarySearch = function(obj) { var value = 0; var left = 0; var right = this.length; while (left <= right) { var center = Math.floor((left + right) / 2); if (this[center] == obj) { value = center; } if (obj < this[center]) { right = center - 1; } else { left = center + 1; } } alert(value); }