拆半查找的递归和非递归算法
生活随笔
收集整理的這篇文章主要介紹了
拆半查找的递归和非递归算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文為原創,如需轉載,請注明作者和出處,謝謝!
#include?<stdio.h>??
int?binary_search(int?x,?int?data[],?int?b,?int?e)?
{?????
????int?i;?????
????while(b?<=?e)?????
????{?????
????????i?=?(b?+?e)?/?2;?????
????????if(data[i]?==?x)?return?i;?????
????????if(data[i]?<?x)??????????
????????????b?=?i?+?1;?????
????????else?????????
????????????e?=?i?-?1;?????????????
????}?????
????return?-1;?????
}??
int?binary_search_recursion(int?x,?int?data[],?int?b,?int?e)?
{?????
????int?i;?????
????i?=?(b?+?e)?/?2;?????
????if(b?>?e)?return?-1;?????
????if(data[i]?!=?x)?????
????{?????
????????if(x?<?data[i])?????????
????????????return?binary_search_recursion(x,?data,?0,?i?-?1);?????
????????else?????????
????????????return?binary_search_recursion(x,?data,?i?+?1,?e);?????
????}?????
????else?????????
????????return?i;?
}??
int?main()?
{?????
????int?data[]?=?{1,?4,?5,?7,?9};?????
????printf("%d?\n",?binary_search_recursion(9,?data,?0,?4));?????
????printf("%d?\n",?binary_search(9,?data,?0,?4));?????
????printf("%d?\n",?binary_search_recursion(90,?data,?0,?4));?????
????printf("%d?\n",?binary_search(89,?data,?0,?4));?????
????return?0;?
}?
本文轉自銀河使者博客園博客,原文鏈接http://www.cnblogs.com/nokiaguy/archive/2008/05/11/1192569.html如需轉載請自行聯系原作者
銀河使者
#include?<stdio.h>??
int?binary_search(int?x,?int?data[],?int?b,?int?e)?
{?????
????int?i;?????
????while(b?<=?e)?????
????{?????
????????i?=?(b?+?e)?/?2;?????
????????if(data[i]?==?x)?return?i;?????
????????if(data[i]?<?x)??????????
????????????b?=?i?+?1;?????
????????else?????????
????????????e?=?i?-?1;?????????????
????}?????
????return?-1;?????
}??
int?binary_search_recursion(int?x,?int?data[],?int?b,?int?e)?
{?????
????int?i;?????
????i?=?(b?+?e)?/?2;?????
????if(b?>?e)?return?-1;?????
????if(data[i]?!=?x)?????
????{?????
????????if(x?<?data[i])?????????
????????????return?binary_search_recursion(x,?data,?0,?i?-?1);?????
????????else?????????
????????????return?binary_search_recursion(x,?data,?i?+?1,?e);?????
????}?????
????else?????????
????????return?i;?
}??
int?main()?
{?????
????int?data[]?=?{1,?4,?5,?7,?9};?????
????printf("%d?\n",?binary_search_recursion(9,?data,?0,?4));?????
????printf("%d?\n",?binary_search(9,?data,?0,?4));?????
????printf("%d?\n",?binary_search_recursion(90,?data,?0,?4));?????
????printf("%d?\n",?binary_search(89,?data,?0,?4));?????
????return?0;?
}?
本文轉自銀河使者博客園博客,原文鏈接http://www.cnblogs.com/nokiaguy/archive/2008/05/11/1192569.html如需轉載請自行聯系原作者
銀河使者
總結
以上是生活随笔為你收集整理的拆半查找的递归和非递归算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 给用户添加sudo权限
- 下一篇: 发现dba_segments和dba_e