資料結構與演算法之整體有序陣列的查詢

2021-07-27 20:05:38 字數 785 閱讀 2852

乙個組數整體上是有序的(或者說是迴圈有序),需要找到其中的某個元素

假設陣列整體是公升序的,基於二分查詢演算法實現如下:

非遞迴實現(c語言)

int search(int a,int length,int target)

else if(a[mid+1] <= a[high])

else if(a[mid+1] == target)

else if(a[high] == target)

return high;

else

}else if(a[mid-1] >= a[low])

else if(a[mid-1] == target)

else if(a[low] == target)

else

}}

return -1;

}

遞迴實現(c語言)

int search(int a,int low,int high,int target)

else if(a[mid+1] <= a[high])

else if(a[high] == target)

else if(a[mid+1] < target < a[high])

}else if(a[mid-1] >= a[low])

else if(a[low] == target)

else if(a[low] < target < a[mid-1])

}}

資料結構 01 陣列 有序陣列

package org.gzw.arr public class myorderarray public myorderarray int maxsize 新增資料 在此排序 從小到大 public void insert long value 從後向前 for int j elements j i...

資料結構與演算法之陣列

陣列的基本概念 陣列是最簡單最常用的資料結構,但是也有一些注意事項 1 陣列的分配方式以及儲存位置 2 初始化 3 不同語言中的陣列高階定義 4 多維陣列 c c 中陣列分配方式 1 int a 10 適用於陣列長度已知或者對陣列長度不敏感的情況,比如定義乙個字串。2 int a int mallo...

資料結構與演算法之陣列

1 陣列的定義 陣列是相同型別資料的有序集合。他描述的是相同型別的若干個資料,按照一定先後順序排列組合而成,當中每乙個資料稱為元素,要訪問元素可以通過他的索引 下標去訪問他 2 陣列的幾個基本要素 1 陣列一旦被建立,其大小是不可以改變的,也就是長度是確定的 2 元素型別是相同型別 3 陣列型別可以...