- 概念:
- 取得一个标志位的值
- 将后面的元素依次与前方的元素对比,直至找到自己合适位置,并插入其中
- 如果无法找出比它更小的值,则它应该为初始值
- 时间复杂度:O(n²)
- 稳定性:高
public void InsertSort(int[] dataArray)
{
for(int i =1;i<dataArray.Length;i++)
{
int iValue=dataArray[0]; //标志数据
bool isInsert=false; //是否插入过数据
for (int j=i-1;j>0;j--)
{
//判断当前数据是否比标志数据大,比它大则不动,小就要往前插入
if(dataArray[j]>iValue)
{
dataArray[j+1]=dataArray[j];
}
//当前数据比标志数据小
else
{
data[j+1]=iValue;
isInsert=true;
break;
}
}
if(isInsert==false)
{
data[0]=iValue;
}
}
}