青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

不會飛的鳥

2010年12月10日 ... 不鳥他們!!! 我要用自己開發的分布式文件系統、分布式調度系統、分布式檢索系統, 做自己的搜索引擎!!!大魚有大志!!! ---楊書童

線性查找和二分查找

問題:數組查找它和數組排序一樣是重要的計算應用之一,電話公司根據姓氏查找,能容易的找到用戶的電話號碼和繳費情況,在學校成績管理系統可以根據學生的學號,很容易就能查找到學生的成績及相關資料,查找在生活中的應用是十分廣泛,數據排序是一個令人感興趣的問題,這里深入理解兩種最基本的算法:線型查找和二分法查找。

         線型查找:把數組的每一個元素和檢索關鍵字比較,安順序從第一個元素一直檢索到要查找的元素,平均來說,程序要把查找關鍵字與一半數組元素進行比較。二分法查找:線型查找法對小型數組和未排序的數組效果較好,但是,對于大型數據來說,線型查找法效率較低。如果已經對數組排序,那么可以使用速度很快的二分法查找.

程序1:線型查找法實現對某個數的查找!
#include<stdio.h>
#include<stdlib.h>
#define Size 100
int         main()   
{
            int linearSearch(int a[],int key,int size);
            int         a[Size],i,searchKey,element;
            for(i=0;i<Size-1;i++)
            a[i]=2*i;
            printf("Enter integer search key:\n");
            scanf("%d",&searchKey);
            element=linearSearch(a,searchKey,Size);
            if(element!=-1)
                printf("Found value in element %d !\n",element);
            else
                printf("Value is not found!\n");
            system("pause");
}   

int linearSearch(int array[],int key,int size)
{
           int j;
           for(j=0;j<Size-1;j++)
           if(array[j]==key)
              return j;
           return -1;
}

程序2:二分法查找法實現對某個數的查找!
#include<stdio.h>
#include<stdlib.h>
#define Size 15
int         main()   
{
            int binarySearch(int [],int,int,int);
            void printHeader(void);
            void printRow(int [],int,int,int);
            int a[Size],i,key,element;
            for(i=0;i<=Size-1;i++)
                a[i]=2*i;
            printf("Enter a number between 0 and 28:");
            scanf("%d",&key);
            printHeader();
            element=binarySearch(a,key,0,Size-1);
            if(element!=-1)
                printf("\n%d found in array element %d !\n",key,element);
            else
                printf("\n%d is not found!\n",key);
         
            system("pause");
}  

void printHeader()
{
            int i;
            printf("\nSubscripts:\n");
            for(i=0;i<=Size-1;i++)
                printf("%3d",i);
            printf("\n");
            for(i=1;i<=4*Size;i++)
                printf("-");
            printf("\n");
}

int binarySearch(int array[],int searchKey,int low,int high)
{
           void printRow(int array[],int low,int middle,int high);
           int middle;
           while(low<=high)
           {
               middle=(low+high)/2;
               printRow(array,low,middle,high);
               if(searchKey==array[middle])
                  return middle;
               else if(searchKey<array[middle])
                  high=middle-1;
               else
                  low=middle+1;
           }
           return -1;
}
void printRow(int array[],int low,int middle,int high)
{
            int i;
            for(i=0;i<=Size-1;i++)
                if(i<low||i>high)
                   printf(" ");
                else if(i==middle)
                   printf("%3d*",array[i]);
                else
                   printf("%3d",array[i]);
            printf("\n");
}


           效率分析:線型查找擺脫了數組排序的約束,不足之處是不適合大型數據查找,并且查找方法比較老套,如果要找的數在數組中最后一個數n,那么搜索從0開始,一直檢索到n,要經過n次遍歷,時間復雜度:O(n),而二分查找法中如果查找關鍵字小于數組中間的元素,就查找數組的頭半部分,否則查找數組的后半部分,時間復雜度:O(log2n),如果在指定子數組中還沒有查找到關鍵字,就再把子數組折半,反復進行這種查找,直到要查找的關鍵字等于子數組中間的元素,或沒有找到關鍵字為止。在最壞的情況下,用二分法查找有1024個元素的數組也只需要比較10次,即用2除1024,連續除10次得到1為止,如果有1048576(2的20次方)個元素,用二分法只要比較20次就可以找到要查找的元素,而用簡單的線型查找則需要進行2的20次方查找,可見二分法比線型查找法的效率要高得多,對10億哥元素的數組來說,平均比較5億次和30次簡直是天壤之別!所以掌握二分法對在龐大的數組庫處理是很有效的!

posted on 2011-06-27 13:48 不會飛的鳥 閱讀(1737) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            在线看无码的免费网站| 激情偷拍久久| 亚洲黄色av| 亚洲视频一区二区| 国产又爽又黄的激情精品视频| 久久综合五月天婷婷伊人| 一区二区三区黄色| 亚洲天堂激情| aa级大片欧美| 亚洲第一区在线| 欧美激情aⅴ一区二区三区| 国产亚洲一级| 亚洲欧美国产视频| 1024亚洲| 91久久精品日日躁夜夜躁国产| 欧美在线视频观看| 欧美国产成人精品| 亚洲视频专区在线| 这里只有精品电影| 欧美在线在线| 亚洲人www| 激情视频一区| 欧美性猛片xxxx免费看久爱| 亚洲在线观看免费| 91久久久久久| 久久夜色撩人精品| 亚洲欧洲一区二区三区| 一区二区三区精品久久久| 一本色道久久综合狠狠躁的推荐| 欧美精品久久久久久久久久| 亚洲女优在线| 日韩视频永久免费| 亚洲福利精品| 国际精品欧美精品| 国产精品国产a级| 久久亚洲国产精品一区二区| 亚洲在线视频网站| 亚洲男女自偷自拍| 亚洲一区视频| 亚洲图片欧洲图片日韩av| 亚洲一区黄色| 亚洲一二三四区| 日韩视频免费在线观看| 亚洲福利视频免费观看| 亚洲国产视频一区| 欧美亚洲一区三区| 久久一区激情| 午夜精品免费| 在线成人av| 日韩视频在线你懂得| 一区二区三区日韩精品| 日韩香蕉视频| 国产伦理一区| 亚洲精品一级| 亚洲主播在线播放| 久久久久久亚洲精品中文字幕| 欧美在线一区二区三区| 午夜精品久久久| 亚洲欧美怡红院| 久久看片网站| 亚洲欧美另类在线观看| 久久不射网站| 久久国产欧美日韩精品| 欧美亚一区二区| 亚洲精选在线观看| 欧美aaa级| 欧美在线亚洲综合一区| 欧美国产极速在线| 国产日韩欧美三区| 欧美亚洲日本网站| 亚洲女性裸体视频| 国产精品美女xx| 亚洲欧美国产三级| 亚洲精品久久久久久下一站 | 久久精品国产99精品国产亚洲性色 | 久久久综合网| 欧美日韩视频第一区| 国产精品色婷婷久久58| 国产噜噜噜噜噜久久久久久久久| 亚洲老板91色精品久久| 日韩视频在线你懂得| 欧美精品一区二区三区在线看午夜| 在线精品视频一区二区| 99精品国产福利在线观看免费| 亚洲麻豆av| 国产精品久久久久久户外露出| 在线午夜精品自拍| 亚洲丝袜av一区| 国产亚洲综合在线| 亚洲精品一区中文| 国产欧美日韩一区二区三区在线| 久久蜜桃精品| 欧美一区二区黄色| 国产精品热久久久久夜色精品三区| av成人动漫| 久久久亚洲高清| 蜜臀99久久精品久久久久久软件| 亚洲精品乱码久久久久久日本蜜臀 | 99av国产精品欲麻豆| 亚洲一区二区综合| 亚洲激情成人| 西西裸体人体做爰大胆久久久| 在线视频成人| 亚洲欧美日韩国产一区二区| 亚洲专区欧美专区| 一本久久知道综合久久| 国产精品网红福利| 欧美韩国一区| 国产欧美激情| 亚洲一区二区三区高清不卡| 国产精品久久久久久久久久三级 | 欧美专区在线播放| 欧美福利一区二区| 久久久久久香蕉网| 欧美午夜电影网| 亚洲无线视频| 欧美一级久久久久久久大片| 久久精品国亚洲| 另类春色校园亚洲| 国产一区二区三区的电影| 亚洲一区二区视频在线| 午夜精品久久久久久久99黑人| 母乳一区在线观看| 91久久极品少妇xxxxⅹ软件| 亚洲六月丁香色婷婷综合久久| 亚洲视频你懂的| 亚洲一区二区三区高清| 亚洲欧美在线网| 久久综合久久久久88| 欧美精品少妇一区二区三区| 欧美精品在线观看91| 国产精品三上| 亚洲激情av| 亚洲欧美日韩天堂| 久久久久久久久一区二区| 欧美国产免费| 亚洲视频专区在线| 亚洲男人的天堂在线| 久久精视频免费在线久久完整在线看| 亚洲欧美日韩中文播放| 久久精品女人| 亚洲精品一区二区三区不| 亚洲一区不卡| 欧美日韩视频在线一区二区| 国产日韩欧美不卡在线| 一本一本久久a久久精品综合妖精| 香蕉久久夜色精品| 亚洲精品一区二区三区婷婷月 | 91久久精品一区二区别| 亚洲欧美综合| 欧美日韩国产91| 91久久久国产精品| 久久av红桃一区二区小说| 亚洲美女黄色片| 久久亚洲国产精品一区二区| 国产日本欧洲亚洲| 日韩午夜在线播放| 欧美xart系列在线观看| 午夜免费日韩视频| 国产日本欧美一区二区三区| 亚洲精品一区二区三区四区高清| 久久蜜桃资源一区二区老牛 | 一区二区三区日韩欧美| 欧美69视频| 99re66热这里只有精品4 | 亚洲天堂视频在线观看| 中日韩美女免费视频网址在线观看| 欧美精品国产精品日韩精品| 一区二区三区日韩精品视频| 亚洲成人在线视频播放| 欧美片第1页综合| 亚洲一区在线视频| 久久激情视频久久| 久久精品国产2020观看福利| 亚洲第一在线综合网站| 欧美激情亚洲自拍| 国产日韩精品一区二区| 久久久久一区二区三区四区| 欧美精品亚洲精品| 久久中文在线| 欧美日韩视频在线| 久久久久国产免费免费| 欧美理论在线| 久久这里只有| 国产精品美女久久| 免费在线一区二区| 国产精品香蕉在线观看| 久久免费黄色| 欧美日韩国产91| 免费在线播放第一区高清av| 欧美精品三级| 在线一区免费观看| 亚洲性图久久| 久久久久久999| 亚洲一区二区三区欧美| 欧美不卡高清| 欧美成人免费网站| 国产日韩欧美成人| 亚洲欧美日韩精品久久亚洲区 | 国产日韩欧美高清|