int main()
{
/*
问题:假设班上有n个同学,考试了,满分是100分。他们的分数是iScore数组里的值,现将他们的分数打印输出。
*/
//分数集合
int iScore[] = { 12,35,99,18,76};
//分数个数
int iCnt = sizeof(iScore) / sizeof(iScore[0]);
//冒泡排序
//从大到小
for (int i=1; i<iCnt; i++)
{
for (int j=0; j<iCnt-i; j++)
{
if (iScore[j] < iScore[j+1])
{
int iTemp = iScore[j];
iScore[j] = iScore[j+1];
iScore[j+1] = iTemp;
}
}
}
for (int k=0; k<iCnt; k++)
{
printf("%d ", iScore[k]);
}
}
思路:
程序执行结果:
与桶插法相比,冒泡排序没有需要占用很大空间的问题,也可以十分方便的解决对应的人的名称排序的问题,将要交换的对象换成结构体即可。
然而,冒泡排序的时间复杂度为O(N*2),这是一个非常高的时间复杂度。