2016-10-03 4 views
0

Прежде всего, я не могу использовать какую-либо внутреннюю команду, сортирующую список, а не какой-либо другой метод сортировки, такой как Выбор, buble. Написать функцию, которая сортирует список, известный иметь ровно два значения это то, что я сделал:Создайте функцию, которая сортирует список, который, как известно, имеет ровно три значения (Sage (python))

def sort_Two_values(list): 
Sorted_List=[] 
Sorted_List.append(list[0]) 
for i in range(1,len(list)): 
    if (list[i-1]>list[i]): 
     Sorted_List.insert(0,list[i]) 
    elif (list[i-1]<list[i]): 
     Sorted_List.append(list[i]) 
    else: 
     if (list[i]==Sorted_List[0]): 
      Sorted_List.insert(0,list[i]) 
     else: 
      Sorted_List.append(list[i]) 
return Sorted_List 

sort_Two_values ​​([1,0,0,0,0,0,1,1,0])

Кажется, что хорошо работает!

Теперь я пытаюсь сделать это для трех значений. Например [1,0,0,0,2,2,1,0,0,2] Кто-нибудь поможет мне в этом!

+1

Похоже на [это] (http://stackoverflow.com/questions/11067209/sorting-how-to-sort-an-array-that-contains-3-kind-of-numbers) – Cyclotron3x3

+0

@ Cyclotron3x3 OP сказал они не могут использовать какой-либо другой метод сортировки, это включает в себя сортировку в виде ведра или слияния, поскольку ответ на ваш связанный вопрос включает –

ответ

0

Все, что вам нужно, это нажать 0 to beginning, 2 to last списка и 1 will remain wherever it is. К концу цикла у вас будет отсортированный список.