基本思想:就是把原来的无序数组,转换成一个有序数组,原来的数组不变。
第一轮把第一个数据加入到有序中去,因为只有一个数据。
第二轮第二个数据与第一个数据比较然后插入相应的位置。
。
。
。
经过n-1轮之后就排序完成
void Insert_Sort(int Data[], int num)
{
int Keyboard;
int Orderly;
int disorderly;
for (disorderly = 1; disorderly < num; disorderly++)
{
Keyboard = Data[disorderly];
Orderly = disorderly - 1;
while(Orderly >= 0 && Data[Orderly]> Keyboard)
{
Swap(&Data[Orderly + 1], &Data[Orderly]);
Orderly--;
}
Data[Orderly + 1] = Keyboard;
}
}
--------------------------------------------------------------------------------------
void Insert_Sort(int Data[], int num)
{
int Keyboard;
int Orderly;
int disorderly;
int keySet;
for (disorderly = 1; disorderly < num; disorderly++)
{
Orderly = 0;
while (Data[Orderly] < Data[disorderly] && Orderly < disorderly)
{
Orderly++;
}
if (disorderly != Orderly)
{
Keyboard = Data[disorderly];
for (keySet = disorderly; keySet > Orderly; keySet--)
{
Swap(&Data[keySet],&Data[keySet-1]);
}
Data[Orderly] = Keyboard;
}
}
}
如果对您的问题有帮助的话可以帮忙点个赞,谢谢~QQ群:540093471 有问题大家可以一起交流沟通!