2017-04-18 66 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