亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

有這樣一個數組A,大小為n,相鄰元素差的絕對值都是1。

發布時間:2020-07-21 20:35:23 來源:網絡 閱讀:1686 作者:小止1995 欄目:編程語言

有這樣一個數組A,大小為n,相鄰元素差的絕對值都是1。如:A={4,5,6,5,6,7,8,9,10,9}。現在,給定A和目標整數t,請找到t在A中的位置。除了依次遍歷,還有更好的方法么?


思路:數組第一個數為array[0], 要找的數為y,設t = abs(y - array[0])。由于每個相鄰的數字之差的絕對值為1。故第t個位置之前的數肯定都比y小。因此直接定位到array[t],重新計算t,t = abs(y – array[t]),再重復上述步驟即可。這種算法主要利用了當前位置的數與查找數的差來實現跨越式搜索。算法效率要比遍歷數組的算法要高一些,并且易于實現。

int FindNumberInArray(int arr[], int n , int find_number)  
{  
  int next_arrive_index = abs(find_number - arr[0]);  
  while (next_arrive_index < n)  
  {  
    if (arr[next_arrive_index] == find_number)  
      return next_arrive_index;  
    next_arrive_index += abs(find_number - arr[next_arrive_index]);  
  }  
  return -1;  
}

拓展:有一個int型數組,每兩個相鄰的數之間的差值不是1就是-1.現在給定一個數,要求查找這個數在數組中的位置。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

华亭县| 东宁县| 荔浦县| 滕州市| 新竹县| 武宁县| 宜春市| 德保县| 琼结县| 康定县| 体育| 西和县| 龙州县| 邛崃市| 阳西县| 云阳县| 通化市| 海晏县| 马尔康县| 安吉县| 夏河县| 临沂市| 长子县| 普宁市| 拜城县| 自治县| 定襄县| 内黄县| 宁河县| 青田县| 惠安县| 仪陇县| 靖西县| 尉氏县| 宝应县| 浦江县| 泰顺县| 沙田区| 西和县| 白玉县| 湖州市|