それは挿入ソートアルゴリズムです
最大の no を次のインデックスに転送することは理解していますが、前の位置 (インデックス) が比較されたばかりの小さい数によってどのように取得されるかを理解することはできません。 j+1]=リスト[j]; しかし、1が後方または前のインデックスに移動する方法
//unsorted array
int[] list = new int[] { 5, 2, 4, 6, 1 };
// the key element being sorted
int key;
//
//start looping starting from the second element
for (int i = 1; i < list.Length; i++)
{
key = list[i];//store the key
int j = i - 1;//get the previous index
//
//loop until you meet a smaller number or 0
while (j >= 0 && list[j] > key)
{
//move the greater number forward
list[j + 1] = list[j];
// Decrementing
j--;
}
//set the key in the proper index
list[j + 1] = key;
}