insertion sort ile ilgili bir noktayı anlayamadım, daha doğrusu bir satırı yardımcı olabilir misiniz?

for(i=1; i<n; i++)
{
temp = data[i];
j=i-1;

while(temp<data[j] && j>=0)
{
data[j+1] = data [j];
--j;
}
data[j+1] = temp; //bu satırı anlayamadım
}

data[j+1] = temp; derken ne demek istiyor? while döngüsünde --j ile j'yi sıfırlamadı mı? yani data[j+1], data[1] demek olmuyor mu her seferinde. beni aydınlatırsanız mutlu olacağım.

 

Kod hakikaten kötü yazılmış.

Arkadaş o döngü içinde array'in ilgili kısmını komple bir adım sağa kaydırıp sonra da en soldaki slota en sağdaki değeri koyuyor. Elinizdeki iskambil kağıtlarını sıralarken yaptığınız hareket gibi düşünün. Sağ taraflarda bir yerden 4'ü alıp 2 ve 5 arasına koyuyorsunuz, aradakilerin hepsinin sırası bir sağa kaymış oluyor.

386 dx
1

mobil görünümden çık