中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

有這樣一個數組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

凤台县| 博兴县| 莲花县| 综艺| 介休市| 锡林郭勒盟| 英山县| 凌海市| 潞西市| 南康市| 和龙市| 同仁县| 湖口县| 盐池县| 于田县| 芦溪县| 长汀县| 临邑县| 成武县| 海口市| 綦江县| 民县| 宁国市| 贵溪市| 崇阳县| 襄汾县| 红桥区| 双流县| 宝清县| 新源县| 石门县| 张家港市| 浑源县| 湘阴县| 长岭县| 德保县| 黑龙江省| 屯昌县| 元江| 霍邱县| 海南省|