以下是我为插入排序所做的方法:
private int i, j, temp;
public void InsertionSort(int[] a)
{
for(i=0 ; i<a.Length-1 ; i++)
{
for(j=i+1 ; j<1 ; j--)
{
if(a[j-1]>a[j])
{
temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
}
else
{
break;
}
}
}
它没有对数组进行排序,当我进入代码时,我看到内部for循环中的代码没有运行,内部代码不断被超越。
例如,将数组设为int[] arr = {7,2,3,6,} ;
答案 0 :(得分:2)
在您的代码中,您有j=i+1 ; j < 1 .
...其中j< 1
是您的条件......当j=i+1
i
从零开始时,这永远不会为真....我认为你希望j>1
处于你的状态