二分法与简单遍历的效率比较
生活随笔
收集整理的這篇文章主要介紹了
二分法与简单遍历的效率比较
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//****************二分法與簡單遍歷法的效率比較
#include <stdio.h>
#include <malloc.h>
#include <time.h>
#define len 100000000int binary_find(int [], int ,int );
int Normal_find(int [], int ,int );
int array[len]={0};int main()
{int num;time_t t_start,t_end; for (int i=0;i<len;i++){array[i]=i+1;}printf("查找的元素是:");scanf("%d",&num);//*********************t_start = clock();printf("查找的元素位置在:%d\n",binary_find(array,len,num));t_end = clock();printf("二分法用時%.6f s\n",double(t_end-t_start)/CLOCKS_PER_SEC);//*********************t_start = clock();printf("查找的元素位置在:%d\n",Normal_find(array,len,num));t_end = clock();printf("簡單遍歷用時%.6f s\n",double(t_end-t_start)/CLOCKS_PER_SEC);//********************return 0;
}int binary_find(int array[],int length,int value)
{if(NULL == array || length == 0)return -1;int start=0;int end=length-1;while (start<end){int middle=start+((end - start) >> 1); //棒棒噠if (value == array[middle]){return middle;}elseif (value > array[middle]){start = middle + 1;}elseend = middle - 1;}return -1;
}int Normal_find(int array[],int length,int value)
{for (int i=0;i<length;i++){if (value == array[i]){return i;}}return -1;
}
總結
以上是生活随笔為你收集整理的二分法与简单遍历的效率比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一笔画问题 连通图(搜索+队列)
- 下一篇: 最大子序列、最长递增子序列、最长公共子串