單鏈表的操作_二分查找

void BinSearch(SqList* sql, EleType x) //二分查找應用於已經排序好的數據

{

assert(sql);

if(sql->size > 0)

{

int left = 0;

int right = sql->size - 1;

int mid = left + (right - left) / 2;  //此處mid寫法 防止溢出

while(left<=right)       

        {

    

if(sql->arr[mid] > x)

{

right = mid - 1;

}

else if(sql->arr[mid] < x)

{

left = mid + 1;

}

else

{

printf("%d",mid);

break;

}

}

 

}


}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章