01-复杂度3 二分查找
生活随笔
收集整理的這篇文章主要介紹了
01-复杂度3 二分查找
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這道題是一道函數題,題目給好相應接口讓完成該子函數。給定的函數接口和結構體定義如下:
#include <stdio.h> #include <stdlib.h>#define MAXSIZE 10 #define NotFound 0 typedef int ElementType;typedef int Position; typedef struct LNode *List; struct LNode {ElementType Data[MAXSIZE];Position Last; /* 保存線性表中最后一個元素的位置 */ };Position BinarySearch( List L, ElementType X );可以看出是要完成對用鏈表存儲的一個線性表進行二分查找,完成程序如下:
Position BinarySearch(List L, ElementType X) {Position Left, Right, Mid;Left = 1;Right = L->Last;while(Left <= Right){Mid = (Left + Right) / 2;if(X > L->Data[Mid])Left = Mid + 1;else if(X < L->Data[Mid])Right = Mid - 1;else return Mid;}return NotFound; }需要注意的一點是while循環條件需是Left <= Right,否則兩者指同一個數時會不進入循環判斷就直接認為“NotFound”,導致結果不正確。
轉載于:https://www.cnblogs.com/biankun/p/8541148.html
總結
以上是生活随笔為你收集整理的01-复杂度3 二分查找的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gcc常用编译选项
- 下一篇: python 虚拟环境使用