javascript版快速排序和冒泡排序

 var sort = (function () {

            //快速排序

            var quickSort = {

                partition: function (array, low, high) {

                    if (low >= high) {

                        return;

                    }

                    var key = array[high];

                    var middle = low;

                    for (var i = low; i < high; i++) {

                        if (array[i] < key) {

                            if (i != middle) {

                                var tmp = array[middle];

                                array[middle] = array[i];

                                array[i] = tmp;

                            }

                            middle++;

                        }

                    }



                    var tmp = array[high];

                    array[high] = array[middle];

                    array[middle] = tmp;



                    return middle;

                },



                sort: function (array, low, high) {



                    if (low < high) {

                        var middle = quickSort.partition(array, low, high);

                        quickSort.sort(array, low, middle - 1);

                        quickSort.sort(array, middle + 1, high);

                    }

                }

            };



            //冒泡排序

            bubbleSort = function (arr) {

                var i = arr.length, j;

                var temp;

                while (i > 0) {

                    for (j = 0; j < i - 1; j++) {

                        if (arr[j] > arr[j + 1]) {

                            temp = arr[j];

                            arr[j] = arr[j + 1];

                            arr[j + 1] = temp;

                        }

                    }

                    i--;

                }

                return arr;



            };
          //插入排序

            insertSort = function (array) {

                if (!array) {

                    return;

                }



                for (var i = 1; i < array.length; i++) {



                    var tmp = array[i];

                    var j = i - 1;



                    while (j>=0 && array[j]>tmp) {

                        array[j + 1] = array[j];

                        j--;

                    }



                    array[j + 1] = tmp;



                }

             

                return array;



            };

 

            return {

                quickSort: quickSort.sort,

                bubbleSort: bubbleSort,
 insertSort:insertSort }; })(); var array = [0, 2, 7, 4, 3, 5, 1, 6]; sort.quickSort(array, 0, array.length); sort.bubbleSort(array); alert(array.toString());

 

你可能感兴趣的:(JavaScript)