2017-06-02 4 views
0

Pré-condition: liste des entrées où len (liste)> = 2Comment trouver la boucle invariante pour ce petit corpus de code?

Post-condition: retourne la deuxième plus petite valeur. S'il existe deux plus petites valeurs dans la liste, retournez le plus petit.

def SecondSmallest(list): 
1 smallest = min(list[0], list[1]) 
2 second_smallest = max(list[0], list[1]) 
3 i = 2 
4 while i < len(list): 
5  item = list[i] 
6  if item < second_smallest: 
7   if item < smallest: 
8    second_smallest = smallest 
9    smallest = item 
10   else: 
11    second_smallest = item 
12  i += 1 
13 return second_smallest 

Merci beaucoup.

+0

Est-ce python? –

Répondre