码迷,mamicode.com
首页 > 编程语言 > 详细

js实现二分法查找、快速排序算法

时间:2015-04-21 18:34:43      阅读:420      评论:0      收藏:0      [点我收藏+]

标签:二分法   快速排序   

二分查找法

function binary_search(source_arr, target){

    var len = source_arr.length,

        start = 0,

        end = len-1,

        middle,middle_val;

    while(start <= end){

        middle = parseInt((start + end) / 2);

        middle_val = source_arr[middle];

        if(middle_val == target){

            return middle;

        }else if(middle_val > target){

            end = middle - 1;

        }else{

            start = middle + 1;

        }

    }

    return -1;

}

时间复杂度: 2^x = n 所以时间复杂度为log2n,空间复杂度为n;


哈希表查找(none)

快速排序

function quick_sort(source_arr, left, right){

    if(left < right){

        var key = source_arr[left],

            start = left,

            end = right;

        while(start < end){

            while(start < end && source_arr[end] > key){

                end --;

            }

            source_arr[start] = source_arr[end];

            while(start < end && source_arr[start] < key){

                start ++;

            }

            source_arr[end] = source_arr[start];

        }

        source_arr[start] = key;

        quick_sort(source_arr, left, start -1);

        quick_sort(source_arr, start+1, right);

    }    

}

时间复杂度log2n~ n*n (n + n/2 + n/2 + n/4 + n/4 + n/4 + n/4.....)

B树、二叉树遍历


js实现二分法查找、快速排序算法

标签:二分法   快速排序   

原文地址:http://mounting.blog.51cto.com/6316625/1636552

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!