logo

Python'da Seçim Sıralaması

Bu dersimizde Python'da seçim sıralama algoritmasını uygulayacağız. Daha az takas kullanan oldukça basit bir algoritmadır.

c# sözlüğü

Bu algoritmada, her geçişte sıralanmamış bir diziden en küçük elemanı seçer ve sıralanmamış dizinin başlangıcıyla değiştiririz. Bu süreç tüm unsurlar doğru yere yerleştirilene kadar devam edecektir. Basit ve yerinde bir karşılaştırma sıralama algoritmasıdır.

Seçim Sıralamasının Çalışması

Python'da Seçim sıralamasının çalışmasını açıklayan adımlar aşağıdadır.

Seçim sıralama algoritmasını uygulamak için sıralanmamış bir diziyi ele alalım.

[30, 10, 12, 8, 15, 1]

sql'de durum nedir

Aşama 1: Dizinin uzunluğunu alın.

uzunluk = uzunluk(dizi) → 6

Adım 2: Öncelikle ilk elemanı minimum eleman olarak ayarlıyoruz.

Aşama 3: Şimdi minimumu ikinci elemanla karşılaştırın. İkinci eleman birinciden küçükse onu minimum olarak atarız.

Yine ikinci elemanı üçüncüyle karşılaştırıyoruz ve eğer üçüncü eleman ikinciden küçükse onu minimum olarak atayın. Bu süreç son elemanı bulana kadar devam eder.

Adım - 4: Her yinelemeden sonra, minimum öğe sıralanmamış dizinin önünde değiştirilir.

powershell büyüktür veya eşittir

Adım 5: Sıralanmış diziyi elde edene kadar ikinci ila üçüncü adımlar tekrarlanır.

Seçim Sıralama Algoritması

Seçim sıralama algoritması aşağıdaki gibidir.

Algoritma

 selection_sort(array) repeat (0, length - 1) times set the first unsorted element as the minimum for each of the unsorted elements if element <currentminimum set element as new minimum swap with first unsorted position end selection_sort < pre> <h2>Selection Sort Program using Python</h2> <p>The following code snippet shows the selection sort algorithm implementation using Python.</p> <p> <strong>Code -</strong> </p> <pre> def selection_sort(array): length = len(array) for i in range(length-1): minIndex = i for j in range(i+1, length): if array[j] <array[minindex]: minindex="j" array[i], array[minindex]="array[minIndex]," array[i] return array print('the sorted is: ', selection_sort(array)) < pre> <p> <strong>Output:</strong> </p> <pre> The sorted array is: [3, 6, 9, 21, 33] </pre> <p> <strong>Explanation -</strong> </p> <p>Let&apos;s understand the above code -</p> <ul> <li>First, we define the <strong>selection_sort()</strong> function that takes array as an argument.</li> <li>In the function, we get the length of the array which used to determine the number of passes to be made comparing values.</li> <li>As we can see that, we use two loops - outer and inner loop. The outer loop uses to iterate through the values of the list. This loop will iterate to 0 to (length-1). So the first iteration will be perform (5-1) or 4 times. In each iteration, the value of the variable i is assigned to the variable</li> <li>The inner loop uses to compare the each value of right-side element to the other value on the leftmost element. So the second loop starts its iteration from i+1. It will only pick the value that is unsorted.</li> <li>Find the minimum element in the unsorted list and update the minIndex position.</li> <li>Place the value at the beginning of the array.</li> <li>Once the iteration is completed, the sorted array is returned.</li> <li>At last we create an unsorted array and pass to the <strong>selection_sort()</strong> It prints the sorted array.</li> </ul> <h2>Time Complexity of Selection Sort</h2> <p>Time complexity is an essential in term of how much time an algorithm take to sort it. In the selection sort, there are two loops. The outer loop runs for the n times (n is a total number of element).</p> <p>The inner loop is also executed for n times. It compares the rest of the value to outer loop value. So, there is n*n times of execution. Hence the time complexity of merge sort algorithm is O(n<sup>2</sup>).</p> <p>The time complexity can be categorized into three categories.</p> <hr></array[minindex]:></pre></currentminimum>

Açıklama -

Yukarıdaki kodu anlayalım -

c'deki işaretçi
  • Öncelikle şunu tanımlıyoruz: seçim_sort() Diziyi argüman olarak alan işlev.
  • Fonksiyonda değerleri karşılaştırarak yapılacak geçiş sayısını belirlemek için kullanılan dizinin uzunluğunu alıyoruz.
  • Görebildiğimiz gibi iki döngü kullanıyoruz - dış ve iç döngü. Dış döngü, listenin değerleri arasında yineleme yapmak için kullanılır. Bu döngü 0'dan (uzunluk-1)'e kadar yinelenecektir. Yani ilk yineleme (5-1) veya 4 kez gerçekleştirilecektir. Her yinelemede, i değişkeninin değeri değişkene atanır.
  • İç döngü, sağ taraftaki elemanın her değerini en soldaki elemandaki diğer değerle karşılaştırmak için kullanılır. Böylece ikinci döngü yinelemeye i+1'den başlar. Yalnızca sıralanmamış değeri seçecektir.
  • Sıralanmamış listede minimum öğeyi bulun ve minIndex konumunu güncelleyin.
  • Değeri dizinin başına yerleştirin.
  • Yineleme tamamlandıktan sonra sıralanan dizi döndürülür.
  • En sonunda sıralanmamış bir dizi oluşturup diziye geçiyoruz. seçim_sort() Sıralanmış diziyi yazdırır.

Seçim Sıralamasının Zaman Karmaşıklığı

Zaman karmaşıklığı, bir algoritmanın onu sıralamasının ne kadar zaman alacağı açısından çok önemlidir. Seçim sıralamasında iki döngü vardır. Dış döngü n kez çalışır (n, toplam öğe sayısıdır).

İç döngü de n kez yürütülür. Değerin geri kalanını dış döngü değeriyle karşılaştırır. Yani, n*n yürütme zamanı vardır. Dolayısıyla birleştirme sıralama algoritmasının zaman karmaşıklığı O(n)'dir.2).

Zaman karmaşıklığı üç kategoriye ayrılabilir.