2017-04-18 33 views
0

問題的位置:查找插入元素到排序後的數組查找插入元素到排序後的數組

A[1] > A[2] > A[3] > ... > A[ n ] 
  1. 位置顯示的最佳和最壞情況。
  2. 寫的算法來解決這個問題

我的回答:

最好的情況是T(N)= 1,換言之在第一位置,其中n是元件的尺寸。最壞的情況將是T(N)= N + 1換句話說一些其他同學寫了一個二進制搜索是最壞的情況比我更好的最後一個位置+ 1

def find_position(element, l): 
     i = 0 
     inserted = False 
     for item in l: 
      if element < item: 
       inserted = True 
       break 
      i = i +1 
     if not inserted: 
      return len(l) 
     else: 
      return i 

,並告訴我,我答案不正確。但我不同意,因爲這個練習沒有明確寫出優化的算法。

我的邏輯中是否有錯誤?

+0

其實你不插入任何東西。另外,如果沒有參考具體的算法,最好和最壞的情況是沒有意義的,所以第1部分不是一個結構良好的問題。 – user2357112

+0

對不起,但我修復了老師的回答,有一個翻譯錯誤。在葡萄牙語中是:「考慮到一個問題就是讓它成爲新的元素:」 –

回答

0

鑑於你說哪裏的條件只是:

1)寫一個算法來解決問題 2)分析說,問題的漸進複雜

你顯然沒有這些。你的解決方案只是顯而易見的,而不是最好的解決方案。

0

就檢查它是否在數字後落在(類似下面..)

for l in range(0, len(lst)): 
    if lst[l] >= number_to_be_inserted: 
     lst.insert(l+1, number_to_be_inserted) 
     break