%二分查詢法
%設計思想;對於乙個有序的列表或陣列,對二分查詢的方式進行元素查詢
function [result_index] = binary_search(array,element)
%array 有序陣列
%element 查詢元素
%result_index 輸出下標
endlow = 1; %設定陣列下標
high = length(array);%設定陣列上標
%進行二分查詢
%使用選擇多分支語句
while low <= high %設定查詢終止條件
mid = fix((low + high)/2); %得到整數值
if array(mid) == element %如果陣列對應位置元素相等
result_index = mid;
return ; %跳出迴圈返回
endif array(mid) < element %如果陣列對應元素小於,則需要改變下標值
low = mid + 1;
else %如果陣列對應元素大於,則需要改變上標值
high = mid - 1;
endif low > high %如果陣列對應元素上下標大小對換,預設輸出方式
result_index = nan;
return ;
endend
注意:1.分請指令碼檔案和函式檔案,二則不能放在一起執行。
2.matlab陣列下標是從1開始。
3.3/2不能自動取整,需用fix()函式左取整
4.拼寫錯誤導致輸出變數沒有賦值
如何對有序陣列進行無序排列
int i new int 定義你一開始的陣列 random ab new random 定義乙個隨機數物件 int u ab.next 0,i.length 生成乙個0到陣列個數的隨機數 arraylist ii new arraylist i 把陣列複製到arraylist ii中,便於刪除。i...
有序陣列的合併
includeusing namespace std define size 1024 1 如果可以申請輔助空間,那麼從前從後倒是沒什麼所謂吧,這就像是歸併的一次歸併了。void merge 1 int arr,int lenarr,int brr,int lenbrr while low1 len...
有序陣列的插入
習題1.9 有序陣列的插入 20 分 本題要求將任一給定元素插入從大到小排好序的陣列中合適的位置,以保持結果依然有序。函式介面定義 bool insert list l,elementtype x 其中list結構定義如下 typedef int position typedef struct ln...