Я ищу реализовать алгоритм выбора сортировки для сортировки несортированного списка/массива, это то, что я получил на данный момент:выбор сортировки до ZTH самого высокого положения питона
list1 = [14,3,2,21,23,12,3,4]#unsorted array
z = 3
for i in range(len(list1)):
for j in range(i, len(list1)):
if list1[i] < list1[j]:
list1[i], list1[j] = list1[j], list1[i]
print(list1)
Проблемы я «Стоит посмотреть, чтобы получить самые высокие предметы. то есть, не печатать самый высокий пункт до тех пор индекс г
Так должен напечатать:
[23,21,14]
Она должна возвращать число элементов сравнений (но должен быть алгоритм сортировки выбор). И не следует делать больше сравнений, чем это необходимо (следует остановить алгоритм, как только будет найден самый высокий элемент z).
Обновление: Я попытался настроить интерактивную реализацию python ... Я просто не могу получить свою голову вокруг него
это то, что я есть
def selectionSort(alist, k):
count = 0
while count < k:
for fillslot in range(len(alist)-1,0,-1):
print(count)
count += 1
positionOfMax = 0
for location in range(1,fillslot+1):
if alist[location] < alist[positionOfMax]:
positionOfMax = location
temp = alist[fillslot]
alist[fillslot] = alist[positionOfMax]
alist[positionOfMax] = temp
alist = [54,26,93,17,77,31,44,55,20]
selectionSort(alist , 3)
print(alist)
Печатается:
0
1
2
3 # should it not stop here since count is less than k?
4
5
6
7
[93, 77, 55, 54, 44, 31, 26, 20, 17]
Итак, используя интерактивный пример python, могу ли я не просто поставить цикл while перед первым циклом for и иметь счет в цикле for? то скажите, пока этот счетчик меньше значения z делает алгоритм? – snuffles101
Конечно, вам стоит попробовать. Я считаю, что это сработает. –