C'de Seçim Sıralaması Nasıl Uygulanır?
Yayınlanan: 2023-01-06Sıralama seçimi, dizinin en düşük tamsayısını bulup en üst konuma atayarak çalışan başka bir algoritmadır. En küçük tamsayı konumunun yanındaki dizin, taranması gereken aşağıdaki diziyi başlatmak için kullanılacaktır.
İçindekiler
C'de Seçim Sıralaması Örneği
En küçüğü 2 olan [10,2,8,4,6] numaralı bir dizi alırsak, en küçük sayı olan 2'yi ilk sıraya yerleştiririz, bundan sonra dizi şöyle görünür: [2,10,8,4,6] gibi. Sonra, bir sonraki en küçük sayıyı alacağız çünkü 2 zaten doğru konumunda. Bir sonraki en küçük sayı, ikinci konuma yerleştirilecek olan 4'tür ve bundan sonra dizi, nihayet sıralanana kadar benzer şekilde aranacaktır.
C'deki seçim sıralaması, sayıları artan düzende sıralar. Algoritmayı değiştirerek, sayılar azalan bir Seçim Sıralamasında düzenlenebilir, Seçim Sıralaması C++ veya Seçim Sıralaması Python gibi C dışındaki diğer dillerde de gerçekleştirilebilir .
Dünyanın En İyi Üniversitelerinden Çevrimiçi Yazılım Geliştirme Kursları Öğrenin. Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
Seçim Sıralama Algoritması
- Öncelikle, seçim sıralamasındaki ilk öğeyi minimum olacak şekilde ayarlıyoruz ve Seçim Sıralama Algoritmasının doğru prosedürü için dizideki en küçük öğeyi arıyoruz .
- Minimum eleman şimdi ikinci bileşenle karşılaştırılır. İkinci eleman minimumun altına düşerse, onları değiştireceğiz ve ardından üçüncü elemana bir minimum değer atayacağız.
- Aksi takdirde, üçüncü öğeye devam edeceğiz ve onu minimumla karşılaştıracağız. İkinci eleman birinci elemanımızı aşarsa, onu değiştiririz. Son bileşene kadar bu işlemi tekrarlayın.
- Her yinelemeden sonra, sıralanmamış listenin başına minimum değerimizin geldiğini göreceğiz.
- Her yineleme için sıralanmamış listenin ilk girişinden indekslemeye başlayacağız. Liste sıralanana veya tüm bileşenler uygun şekilde konumlandırılana kadar, 1'den 4'e kadar olan Adımları birkaç kez tekrarlayacağız.
Yazılım Mühendisliği ile İlgili Popüler Kurslar ve Makaleler
Popüler Programlar | |||
Yazılım Geliştirmede Yönetici PG Programı - IIIT B | Blockchain Sertifika Programı - PURDUE | Siber Güvenlik Sertifika Programı - PURDUE | Bilgisayar Bilimlerinde Yüksek Lisans - IIIT B |
Diğer Popüler Makaleler | |||
ABD'de Bulut Mühendisi Maaşı 2021-22 | ABD'de AWS Çözüm Mimarı Maaşı | ABD'de Arka Uç Geliştirici Maaşı | ABD'de Ön Uç Geliştirici Maaşı |
ABD'de web geliştiricisi Maaşı | 2022'de Scrum Master Mülakat Soruları | 2022'de Siber Güvenlik Alanında Bir Kariyere Nasıl Başlanır? | Mühendislik Öğrencileri için ABD'de Kariyer Seçenekleri |
Her yinelemeyle ilgili aşağıdaki örnek, C'deki seçim sıralama sürecini ayrıntılı olarak anlamanıza yardımcı olacaktır .
Yineleme # 1
ben [ ] = 8,5,2,6,4
Bir minimum ayarlayın – 8
i 0 ve i 1'i karşılaştırın
i 0 > i 1 olarak minimum = 5 ayarlayın.
- i 1 ve i 2'yi karşılaştırın
i 1 > i 2 olarak minimum = 2 ayarlayın.
- i 2 ve i 3'ü karşılaştırın
i 2 < i 3 olarak, minimum= 2 ayarlayın.
- i 2 ve i 4'ü karşılaştırın
i 2 < i 4 olarak, minimum = 2 olarak ayarlayın.
2, tüm elemanların en küçük sayısıdır, i 0 ve i 2'yi değiştirmeliyiz
Yineleme #2
ben [ ]= 2,5,8,6,4
Minimum 5'i ayarla
- i 1 ve i 2'yi karşılaştırın
i 1 < i 2 olarak, minimum = 5 ayarlayın.
- i 1 ve i 3'ü karşılaştırın
i 1 < i 3 olarak, minimum = 5 ayarlayın
- i 1 ve i 4'ü karşılaştırın
Yine, i 1 < i 4 , minimum = 4 ayarlayın.
4, dizideki en küçük öğedir, bu nedenle i 1 ve i 4'ü değiştirmeliyiz .
Yineleme #3
ben [ ]= 2,4,8,6,5
Minimum 8'i ayarla
- i 2 ve i 3'ü karşılaştırın
i 2 > i 3 olarak, minimum = 6 ayarlayın.
- i 3 ve i 4'ü karşılaştırın
i 3 > i 4 olarak minimum = 5 ayarlayın.
5, dizideki en küçük öğedir, i 2 ve i 4'ü değiştirmelisiniz .
Yineleme #4
ben [ ] = 2,4,5,6,8
Minimum 6'yı ayarlayın
- i 3 ve i 4'ü karşılaştırın
i 3 < i 4 olarak, minimum = 6 ayarlayın.
Minimum doğru yere yerleştirilir; böylece takas olmaz.
C'deki Seçim Sıralama Örneği
// C'de seçim sıralaması
#include <stdio.h>
// iki elemanın yerini değiştiren fonksiyon
geçersiz takas(int *a, int *b) {
int sıcaklık = *a;
*a = *b;
*b = sıcaklık;
}
geçersiz seçimSort(int dizi[], int boyut) {
for (int adım = 0; adım < boyut – 1; adım ++) {
int min_idx = adım;
for (int i = adım + 1; i < boyut; i++) {
// Azalan düzende sıralamak için bu satırda > öğesini < olarak değiştirin.
// Her döngüdeki minimum öğeyi seçin.
eğer (dizi[i] < dizi[min_idx])
min_idx = i;
}
// min'i doğru konuma getir
takas(&dizi[min_idx], &dizi[adım]);
}
}
// bir dizi yazdırma işlevi
geçersiz printArray(int dizi[], int boyut) {
for (int i = 0; i < boyut; ++i) {
printf(“%d “, dizi[i]);
}
printf(“\n”);
}
// sürücü kodu
int ana() {
int veri[] = {20, 12, 10, 15, 2};
int boyut = sizeof(veri) / sizeof(veri[0]);
seçimSort(veri, boyut);
printf(“Dizinin Geliş Sırasına Göre Sıralanması:\n”);
printArray(veri, boyut);
}
Seçim Sıralamasının Karmaşıklık Analizi
Giriş – n giriş öğesi verilir.
Çıktı – Listeyi sıralamak için gereken adım sayısı.
Mantık – Bize n öğe verilirse, ilk geçişte n-1 karşılaştırma, ikinci geçişte n-2 karşılaştırma, üçüncü geçişte n-3 karşılaştırma vb. Sonuç olarak, toplam karşılaştırma sayısı;
Çıktı -
(n+1) + (n+2) + (n+3) + (n+4) + …. +1
Toplam = n(n-1)/2 yani O(n²)
Seçim sıralama yöntemi, takas için geçici değişkenler için bir miktar ek bellek alanına ihtiyaç duyduğundan, O(n2) zaman karmaşıklığına ve O(1) uzay karmaşıklığına sahiptir.
Seçim Sıralama Zamanı Karmaşıklık Analizi
En İyi Durum: Önceden sıralanan dizi için, seçim sıralama yönteminin en iyi durum zaman karmaşıklığı O(n²)'dir.
Ortalama Durum: Seçim sıralama algoritması, öğeler karışık düzende, yani ne artan ne de azalan düzende düzenlendiğinde O(n²) ortalama durum zaman karmaşıklığına sahiptir.
En Kötü Durum: Bir dizinin azalan sırasını artan sırasına çevirdiğimizde, en kötü durum zaman karmaşıklığı O(n²)'dir.
Seçim sıralama yönteminin zamansal karmaşıklığı, üç senaryonun her birinde O(n²)'dir. Bunun nedeni, bunları düzgün bir şekilde düzenlemek için her aşama için minimum öğeleri belirlememiz gerektiği gerçeğidir. Tüm diziyi takip ettikten sonra minimal elementimizi bulmuş olacağız.
Çözüm
Bu, "C'de Seçim Sıralaması" hakkındaki blog gönderisini sona erdirir. Bunun, Selection Sort C++ ve Selection Sort Python gibi diğer dillerde de yapılabileceğini anlamalısınız . Bu makalenin, C'deki öğeleri nasıl sıralayacağınızı anlamanıza yardımcı olacağını umuyoruz.
Seçim sıralaması, programcı olma yolculuğundaki tek bölüm değildir. Profesyonel bir derece ile yazılım geliştirme kariyerinizde önemli bir artış elde etmeyi umuyorsanız, upGrad burada! upGrad'ın ön uç geliştirme (JavaScript, HTML, CSS), arka uç (NoSQL-MongoDB) ve mikro hizmetler, ardından UpGrad'ın Bilgisayar Bilimleri Yüksek Lisans dersini takip edebilirsiniz. IIIT Bangalore ve LJMU Mezun Durumu tarafından verilen bu kurs, kariyerinizi dünyanın her yerindeki teknoloji devlerinde bir yazılım mühendisi/tam donanımlı geliştirici olarak belirlemenize yardımcı olur.
Bu kurs, Java, Spring ve Hibernate gibi araçlara ilişkin temel bilgileri kapsar ve olağanüstü fırsatlarla iş piyasasını keşfetmek için eksiksiz geliştirme becerilerimizi güçlendirir.
Daha fazlasını öğrenmek için kaydolun !
Veri yapılarında seçim sıralaması ne anlama gelir?
Basit bir sıralama algoritması, seçim sıralamasıdır. Liste, bu yerinde karşılaştırmaya dayalı sıralama işleminde, sıralanan kısım sol uçta ve sıralanmamış kısım sağ uçta olmak üzere ikiye bölünür. Liste bir bütün olarak başlangıçta sıralanmamış yarıdadır ve sıralanan kısım boştur.
C'de hızlı sıralama nedir?
Quicksort olarak bilinen sıralama algoritması, böl ve fethet stratejisine dayanır. Bir dizi, bir pivot öğe seçilerek alt dizilere (diziden seçilen bir öğe) bölünür.
C'de 2 yönlü seçim nedir?
Biri Boole koşulunun doğru olduğu zaman için, diğeri ise yanlış olduğu zaman için olmak üzere iki ifade kümesi mevcut olduğunda, bu iki yönlü seçim (if/else) olarak bilinir.