js快速排序与冒泡排序
1.快速排序
快速排序就是首先取一组数据的第一个数作为中间值,然后遍历数据,将比中间值小的数放在其左边,将比中间值大的数放在右边,这就进行了第一次的排序,随后将左边的数据与右边的
数据再一次利用此方法进行排序,直到最后只剩下一个数据为止,我们可以采用递归的思想进行循环调用得到最终的结果。
2.快速排序代码实现
function quick(arr){
            if(arr.length<=1)
            {
                return arr;
            }
                var left = [];
                var right = [];
                var mid = arr[0];
                for(var i = 1;i<arr.length;i++)
                {
                    arr[i] < mid ? left.push(arr[i]) : right.push(arr[i]);
                }
                return quick(left).concat([mid],quick(right));
          }  
          var arr = [1,5,9,6,3,4,8,7]
          console.log(quick(arr));
          console.log(arr.join());
3.选择排序
选择排序的思想是经过n-1趟的比较,每一趟得到一个最大或者最小的值放在末尾,此时将需要比较的数据减少一个,循环反复,最后得到最终的数据。
4.代码实现
 //选择排序
         var arr = [8, 5, 9, 6, 3, 1]
          function select(arr) {
            for (var i = 0; i < arr.length; i++) {
                var min = i
                for (var j = i + 1; j < arr.length; j++) {
                    if (arr[j] > arr[min]) {
                        min = j
                    }
                }
                if (min != i) {
                    var temp = arr[min]
                    arr[min] = arr[i]
                    arr[i] = temp
                }
            }
            return arr
            
        }
        
        console.log(select(arr));

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号