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());

 

posted @ 2014-03-12 16:49  daoyuly  阅读(196)  评论(0编辑  收藏  举报