Как да използвате сортиране за избор

Как да използвате сортиране за избор

Сортирането на подбор е техника за сортиране, която избира елемент от списъка и след това разменя мястото му с друг. Той избира най -големия елемент и след това го разменя с елемент в най -високия индекс на списъка.





Алгоритъмът прави това многократно, докато списъкът не бъде сортиран. Ако не сте съвсем сигурни как работи сортирането на подбора, сте попаднали на правилното място. Ще го обясним по -подробно по -долу, заедно с пример.





Сортиране на подбора: По -отблизо

Да предположим, че имате списъка: [39, 82, 2, 51, 30, 42, 7]. За да сортирате списъка с помощта на сортиране на селекция, първо трябва да намерите най -голямото число в него.





С дадения списък това число е 82. Разменете 82 с номера в най -високия индекс (тоест 7).

След първото преминаване, новият ред на списъка ще бъде: [39, 7, 2, 51, 30, 42, 82]. Всеки път, когато алгоритъмът премине през целия списък, това се нарича „преминаване“.



Забележете, че списъкът поддържа сортиран подсписък и несортиран подсписък по време на процеса на сортиране.

как да намерите скрити песни в spotify

Свързани: Какво е Big-O нотация?





Първоначалният списък започва със сортиран списък с нулеви елементи и несортиран списък с всички елементи. След това след първото преминаване той има сортиран списък, съдържащ само номер 82.

При второто преминаване най -големият брой в несортирания подлист ще бъде 51. Този номер ще бъде заменен с 42, за да се даде новия ред на списъка по -долу:





какво означава на телефона си

[39, 7, 2, 42, 30, 51, 82].

Процесът се повтаря, докато целият списък не бъде сортиран. Фигурата по -долу обобщава целия процес:

Цифрите с удебелен черен цвят показват най -високата стойност на списъка по това време. Зелените показват сортирания подсписък.

Алгоритъмен анализ

За да получите сложността (използвайки Big-O нотация) на този алгоритъм, следвайте по-долу:

При първото преминаване се правят сравнения (n-1). На втория проход, (n-2). На третия проход, (n-3) и така нататък до (n-1) -то преминаване, което прави само едно сравнение.

Обобщавайки сравненията по -долу, се получава:

(n-1)+ (n-1)+ (n-1)+ ...+ 1 = ((n-1) n)/2.

Следователно сортирането за избор е O (n2).

Прилагане на кода

Кодът показва функции, които можете да използвате за извършване на сортиране на селекция с помощта на Python и Java.

Python:

def selectionSort(mylist):
for x in range(len(mylist) - 1, 0, -1):
max_idx = 0
for posn in range(1, x + 1):
if mylist[posn] > mylist[max_idx]:
max_idx = posn
temp = mylist[x]
mylist[x] = mylist[max_idx]
mylist[max_idx] = temp

Java:

void selectionSort(int my_array[]){
for (int x = 0; x {
int index = x;
for (int y = x + 1; y if (my_array[y] index = y; // find lowest index
}
}
int temp = my_array[index]; // temp is a temporary storage
my_array[index] = my_array[x];
my_array[x] = temp;
}}

Преминаване от Сортиране за избор към Сортиране за обединяване

Както показа горният анализ на алгоритъма, алгоритъмът за сортиране на подбора е O (n2). Той има експоненциална сложност и следователно е неефективен за много големи масиви от данни.

защо скоростта на изтегляне пада

Много по -добър алгоритъм за използване би бил сортирането чрез сливане със сложността на O (nlogn). И сега знаете как работи сортирането на подбор, следващият списък за изследване за алгоритми за сортиране трябва да бъде сортирането за сливане.

Дял Дял Туит електронна поща 8 -те най -добри уебсайта за безплатно изтегляне на аудиокниги

Аудиокнигите са чудесен източник на забавление и са много по -лесни за смилане. Ето осемте най -добри уебсайта, където можете да ги изтеглите безплатно.

Прочетете Напред
Свързани теми
  • Програмиране
  • Програмиране
  • Алгоритми
За автора Джером Дейвидсън(22 статии са публикувани)

Джером е щатен писател в MakeUseOf. Той обхваща статии за програмиране и Linux. Той също е ентусиаст на крипто и винаги следи крипто индустрията.

Още от Джером Дейвидсън

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате