1.直接插入排序
void DirectInsertSort1(int aryData[], int iNum)
{
//i为从第二个开始,要插入到前面已排好的序列中;
for(int i=1; i<iNum; i++)
{
//j为当前i-1个已排好的序列的游标;
for(int j=0; j<i; j++)
{
if(aryData[j]>aryData[i])
{
//记录第i个数据,从i开始依次往挪数据;
int temp = aryData[i];
for(int k=i; k>j; k--)
{
aryData[k] = aryData[k-1];
}
aryData[j] = temp;
break;
}
}
}
return;
}
void DirectInsertSort(int aryData[], int iNum)
{
//i为从第二个开始,要插入到前面已排好的序列中;
for(int i=1; i<iNum; i++)
{
//少一层循环;
for(int j=i; j>0 && aryData[j]<aryData[j-1]; j--)
{
int temp = aryData[j];
aryData[j] = aryData[j-1];
aryData[j-1]= temp;
}
}
return;
}
***************************************************************************************************************************************
2.折半插入排序
3.二路插入排序
4.表插入排序
5.希尔排序
待完成;
***************************************************************************************************************************************
6.main()函数调用
int main(int argc, char *argv[])
{
/*
char* strA;
char strB[12] = "12345678900";
_strcpy(strA, strB);
cout<<strA<<endl;
*/
/*
int Y = 2004;
int M = 12;
int D = 31;
int H = 23;
int Min = 59;
int S = 59;
NextSecond(Y, M, D, H, Min, S);
cout<<"Next Second:"<<endl;
cout<<Y<<"."<<M<<"."<<D<<" "<<H<<":"<<Min<<":"<<S<<endl;
*/
int ary[5] = {4,2,5,1,3};
int n = 5;
DirectInsertSort(ary, n);
for(int i=0; i<5; i++)
{
cout<<ary[i]<<endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}