数组排序冒泡排序快速排序选择排序

Posted menggirl23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组排序冒泡排序快速排序选择排序相关的知识,希望对你有一定的参考价值。

在工作中遇到了排序问题,随后就总了了几种排序方式【冒泡排序、快速排序、选择排序】

【冒泡排序】

  原理:比较相邻的两个元素,将值大的交换至右侧

// 冒泡排序:比较相邻的两个元素,将值大的交换至右边
        var arr = [1,20,5,62,8,2,45];
        function bubbleSort(obj){
            for(var i = 0; i < obj.length; i++){
                for(var j = 0; j < obj.length -i -1; j++){
                    if(obj[j] > obj[j+1] ){
                        var temp = obj[j];
                        obj[j] = obj[j+1];
                        obj[j+1] = temp;
                    }
                }
            }
            return obj;
        }
        document.write("冒泡排序" + bubbleSort(arr) + "<br>");

 

【快速排序】

  原理:1、选择数组的一个中间值,分成左右两个数组,

     2、用中间值与数组的值进行比较,比中间值小的放到左数组,比中间值大的放到右数组

       3、最后将左数组、中间值与右数组连接起来

 //快速排序:选择中间值,分左右两个数组,左数组的都比右数组的小
        var arr = [1,20,5,62,8,2,45];
        function quickSort(arr){
            if(arr.length <= 1){
                return arr;
            }
            var middleIndex = Math.floor(arr.length / 2);
            var middleVal = arr.splice(middleIndex, 1)[0];
            var left = [], right = [];
            for(var i = 0; i < arr.length; i++){
                if(arr[i] < middleVal){
                    left.push(arr[i]);
                }else{
                    right.push(arr[i]);
                }
            }
            return quickSort(left).concat([middleVal], quickSort(right))
        }
        document.write("快速排序:" + quickSort(arr) + "<br>");

 

【选择排序】

  原理:把未选择中的最小值存放在起始位置,然后在未排序中找到最小的值,放在已排序的最后

 //选择排序:把未选择中的最小值存放在起始位置,然后在未排序中找到最小的值,放在已排序的最后
        var selectSortArr = [1,20,5,62,8,2,45];
        function selectSort(arr){
            if(arr.length <= 1){
                return arr;
            }
            var minIndex, temp;
            console.log(arr)
            for(var i = 0; i< arr.length; i++){
                minIndex = i;
                for(var j = i + 1; j < arr.length; j++){
                    if(arr[j] < arr[minIndex]){
                        minIndex = j;
                    }
                }
                temp = arr[i];
                arr[i] = arr[minIndex];
                arr[minIndex] = temp;
                console.log(arr)
            }
            return arr;
        }
        document.write("选择排序:" + selectSort(selectSortArr));

 

以后学会了其他的排序算法,会继续补充的。

 

-THE END-

以上是关于数组排序冒泡排序快速排序选择排序的主要内容,如果未能解决你的问题,请参考以下文章

排序算法(冒泡排序,选择排序,插入排序,快速排序)

JavaScript数组排序(冒泡排序选择排序桶排序快速排序)

数组中元素的排序(常用的冒泡排序选择排序快速排序)

Python八大算法的实现,插入排序希尔排序冒泡排序快速排序直接选择排序堆排序归并排序基数排序。

五种排序算法整理 二(堆排序,快速排序插入排序选择排序冒泡排序)

Java八股文面试题 基础篇 -- 二分查找算法冒泡排序选择排序插入排序希尔排序快速排序