码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构

时间:2015-04-20 22:07:19      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

一.有序数组的折半查找

【步骤】

 ① low=0,high=length-1;     //初始值

 ② 当low>high时,返回查找失败信息

 ③ low<=high时,mid=(low+high)/2

     a.若key<a[mid],high=mid-1;    //查找在左半区

     b.若key>a[mid],low=mid+1;    //查找在右半区

     c.若key=a[mid],返回mid           //查找成功

【算法实现】

public int binarySearch(int[] a,int key) {
    int len=a.length;
    int low=0;
    int high=len-1;
    while(low<=high) {
        int mid=(low+high)/2;     
        if(a[mid]<key) {            //在右半区
            low=mid+1;    
        }else if(a[mid]>key) {   //在左半区
            high=mid-1;         
        }else {
            return mid;       //查找成功
        }  
    }
    return -1;             //查找失败
}

 

二.快速排序

【基本思想】

1.选择一个基准元素,通常选择第一个或者最后一个元素

2.通过一趟排序将待排序的记录分成两个部分,其中一部分都比基准元素小,另一部分都比基准元素大

3.将基准元素放在排好序的正确位置

4.分别对两部分采取同样的排序,直到整个记录有序

数据结构

标签:

原文地址:http://www.cnblogs.com/hwu2014/p/4442612.html

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