品一品编程 --- 5

问题描述:

实现基于数组的 sort 排序函数

var sort = function(arr) {
    // your code
}

sort([5, 100, 6, 3, -12]) //[-12, 3, 5, 6, 100]
程序如下:

//冒泡排序 O(n^2)

var sort = function(arr) {
    var len = arr.length
    for(var i = 0; i < len-1; i++) {
        for(var j = i+1; j < len; j++) {
            if(arr[i] > arr[j]) {
                var tmp = arr[i]
                arr[i] = arr[j]
                arr[j] = tmp
            }
        }
    }
    return arr
}

//快速排序---优势:原地排序O(n*log2n)

var quickSort = function(arr) {
    function sort(left,right) {
        var high = right;
        var pivot = arr[left];
        if(right > left){
            while(left < right) {
                while(left < right && arr[right] > pivot) {
                    right--;
                };
                arr[left] = arr[right];
                while(left < right && arr[left] < pivot) {
                    left++;
                }
                arr[right] = arr[left];
            }
            arr[left] = pivot;
            sort(0, left);
            sort(left+1, high);
        }
    }
    sort(0,arr.length-1);
    return arr;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,796评论 18 399
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 1,355评论 0 2
  • 该系列文章主要是记录下自己暑假这段时间的学习笔记,暑期也在实习,抽空学了很多,每个方面的知识我都会另起一篇博客去记...
    Yanci516阅读 12,669评论 6 19
  • 没错,我不善于交流,可是那只是对于不熟悉的人!荘荘,你算我最熟悉的人!你身边发生的大大小小的事我都清楚,你的身份证...
    alosterloster阅读 200评论 0 0
  • 我自己的知识面特别窄,脑袋里装的东西很少,所以自己的独立思考的能力也很差,上课也不敢举手发言。在自己没有足够的能力...
    邓茜Daisy阅读 275评论 0 0

友情链接更多精彩内容