1.冒泡排序
function sort(arr){
for(var i = 0;i<arr.length-1;i++){ for(var j =0; j<arr.length-i-1;j++){ if(arr[j]>arr[j+1]){ var temp = arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } return arr; }2.选择排序
function selectSort(arr) {
for(var i = 0; i < arr.length; i++) { //遍历数组 var minIndex = i; //i是数组最小值的索引 for(j = i + 1; j < arr.length; j++) { if(arr[minIndex] > arr[j]) { minIndex = j; } } if(i != minIndex) { //假设的刚好就是最小值。 temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } } return arr;}
3.快速排序
思路:获取数组的中间值,截取出来
遍历数组,用数组的每一项去和中间值比较,比较的结果分别放在两个数组里面
递归:将分隔到左右的两个数组在排序,知道数组的长度等于1
将结果通过concat进行连接
function quickSort(array){
if(Array.isArray(array)){ if(array.length<=1){ return array; }//递归一定要写初始值 var minIndex = Math.floor(array.length/2);//取出数组中间值的下标 var minValue = array.splice(minIndex,1)[0];//通过下标把数组的中间值截取出来 var left = [];//定义一个新数组,用来存放比中间值小的值 var right = [];//定义一个新数组,用来存放比中间值大的值 for(var i = 0;i<array.length;i++){ if(array[i]<minValue){ left.push(array[i]); }else{ right.push(array[i]); } } return quickSort(left).concat(minValue,quickSort(right)); }else{ alert("好好写"); } }