Я написал реализацию алгоритмов выбора и вставки в PHP и хотел перевести их на Python в качестве теста для сравнения времени выполнения.
Поскольку я относительно новичок в Python, мне интересно, почему этот код не работает должным образом. Возвращает массив, указанный в вызове функции.
Python Script:
def insertionSort(sort_array: list):
for i in range(0, len(sort_array)-1, +1):
for j in range (i+1, 0, -1):
if sort_array[j-1] > sort_array[j]:
temp = sort_array[j-1]
sort_array[j-1] = sort_array[j]
sort_array[j] = temp
return sort_array
print(insertionSort([11, 2, 4, 8, 7, 3, 9]))
[11, 2, 4, 8, 7, 3, 9]Процесс завершен с кодом выхода 0
PHP Script (рабочий)
function insertionSort($sort_array){
for ($i = 0; $i < count($sort_array); $i++){
for ($j = $i + 1; $j > 0; $j--){
if($sort_array[$j-1] > $sort_array[$j]){
$temp = $sort_array[$j-1];
$sort_array[$j-1] = $sort_array[$j];
$sort_array[$j] = $temp;
}
}
}
return $sort_array;
}
Заранее спасибо. Любой критик моего стиля Python приветствуется.
редактировать: Очевидно, это проблема с моей локальной системой, так как онлайн-интерпретатор возвращает правильно отсортированный массив: https://repl.it/GULW
Задача ещё не решена.
Других решений пока нет …