Seçerek Sıralama (Selection Sort) (Algoritma Analizi 3)

preview_player
Показать описание
Algoritma analizi açısından seçerek sıralama algoritmasının çalışması ve algoritma karmaşıklığı (en iyi ( büyük omega)), en kötü (büyük o) ve ortalama durum (teta)) analizlerini yaparak algoritmanın kodunun üzerinden geçiyoruz.
Рекомендации по теме
Комментарии
Автор

Hocam, 44 yasindayim, bilgisayar ogrenmeye basliyorum. Emeginize saglik, oz, yuksek kaliteli bilgi veriyorsunuz. Big O nosyonunuz log n:) Hem cok tesekkur ediyor, hem de tebrik ediyorum.

akinalkan
Автор

Hocam Allah sizi başımızdan eksik etmesin. [A]min; :)

Kaan-lvef
Автор

3:00 'da n'inci eleman olmadığı için n-1'e kadar gidiyor demişsiniz sanırım dikkatsizlik oldu orada. Zaten n-1'inci elemanı da dahil etmiyor o for döngüsü. Bunun sebebi de o for döngüsünün kıyaslamadaki elemanlardan birini seçerken; içindeki for döngüsünün, ilk for döngüsünün seçtiği elemanla kıyaslanacak elementi seçmesi. Yani zaten dıştaki for i=n-2 eşitliği için çalıştığında tüm dizi sort olmuş oluyor.

Bunun haricinde içteki for j=i değil de j=i+1 ile başlamalı diye düşünüyorum. Çünkü j=i olduğu durumda kendi kendisiyle kıyaslama yapıyor sayıyı.

Bir yanlışım varsa lütfen düzeltin.
Video için teşekkürler.

batuhanbulut
Автор

efsane anlatım hocam hayran kaldim helal gercekten muazzsmsiniz

rojeyyag
Автор

saygılar hocam en kötü durum için önce n tane sonra n-1, n-2 ... diye geçtiği için n! olmaz mı orayı yanlış mı anladım ben
teşekkürler.

hamzakoca
Автор

02:56 da i<n dediğimizde zaten bir küçüğüne kadar gitmiş oluyor. Tekrardan i<n-1 diye çıkardığımızda hatalı olarak son elemanı atlamış olmuyor muyuz? Önümdeki defterimde de aynı şekilde yazılı ama anlamadığım için soruyorum.

AliBurakZeytinci
Автор

hocam worst case için tersten sortlanmış hali olur demişsiniz ancak, mantıken bakıldıgında her zaman listedeki o ana kadar sortlamadığı tüm elemanlara bakıp da en kücük elemanı secmesi gerekmiyor mu? Yani 1 en başta da olsa en sonda da olsa, 1 i bulduktan sonra da listeyi tamamen gezip 1 den kücük eleman var mı diye bakması gerekmiyor mu? Tesekkürler

anlerylmaz
Автор

İkinci for'da j=i yerine j=i+1'den başlasak daha doğru olmaz mı?

Автор

Hocam worst-case'de tersten sıralı ise n/2 olmaz mı 1. ile N.'yi yer değiştirdi mi ilk eleman gibi son elemanın da yeri kesinleşiyo

sadkkaplan
Автор

Dizinin icine 1 kez bakildiginda aynı anda hem minimum hemde maximum değerler yazılabilir mi ?

umidakubanichbekkizi
Автор

best case neden n^2 oldu? anlayan cevaplayabilir mi?

petrichor-fp
Автор

A[min] biraz komik denk gelmis orda. Hayirlisi ile kodumuz bitti, A[min] :)

reyou
Автор

Sut ve visne suyu kaplari ornegi cok hostu hocam

burakhanaksoy
Автор

python kodu -- kac defa yer degistirme islemi yaptigi ve ne kadar zaman gectigini de hesaplayacak sekilde.

import time
counter = 0
start = time.time()
for j in range(len(a)-1):
#print('i----', j)
for i in range(len(a)-1):
#print('j', i)
if a[i]>a[i+1]:
#print('ilk', a[i])
counter =counter+1
x = a[i]
a[i] = a[i+1]
a[i+1] = x
#print('son', a[i])
else:
pass

end = time.time()
print(end-start)

tacettinarici
Автор

hocam 1 den n e bakma dediğiniz swaptan mı gelir for da nmı?

hakan
Автор

Video'da Java versiyonu gösterilen kodun C ile main içinde yazılmış hali aşağıdadır: Sorum şöyle:
Bu kod ile 5, 3, 1, 4, 6, 2 dizisini sıralatmaya çalıştığımda çıktısı : 2, 1, 3, 4, 5, 6 oluyor. Bunun yanında diziyi 6, 5, 4, 3, 2, 1 olarak ters sıralı yaptığımda çıktısı doğru oluyor : 1, 2, 3, 4, 5, 6. Bu videodaki kodda hata mı var acaba ?iç döngüyü j=i+1 yapınca da durum değişmiyor.


int main(void)
{
int a[]={5, 3, 1, 4, 6, 2};
int i, j, enkucuk, temp;

int n = sizeof(a)/sizeof(a[0]);
for(i=0;i<n-1;i++)
{
enkucuk=i;
for(j=i;j<n;j++)
{
if(a[j]<a[enkucuk])
{
enkucuk=j;

}

temp=a[i];
a[i]=a[enkucuk];
a[enkucuk]=temp;
}
}

for(int k=0;k<6;k++)
printf(" %d ", a[k]);
}

tttuanaaa