//void exchange(int stu[], int sz)
//{
// int atm = 0;
// int i = 0;
// int j = 0;
// //趟数
// //注意这里i和j都不能<=,因为i<sz-1时就已经循环了五次,j也同理
// for (i = 0; i < sz - 1; i++)
// {
// for (j = 0; j < sz - 1 -i; j++)//这里是一趟确定一个最大,从右往左
// {
// if (stu[j] > stu[j + 1])
// {
// atm = stu[j];
// stu[j] = stu[j + 1];
// stu[j + 1] = atm;
// }
// }
// }
//}
//int main()
//{
// int i = 0;
// int j = 0;
// //int stu[10] = {77,88,99,78,76,90,80,70,74,89};
// int stu[10] = { 0 };
// int sz = sizeof(stu) / sizeof(stu[0]);
// for(i = 0;i < sz;i++)
// {
// scanf("%d", stu[i]);
// }
// exchange(stu, sz);
// for(j = 0;j < sz; j++)
// {
// printf("%d ", stu[j]);
// }
// return 0;
//}
冒牌排序第一次得到最大值,以此类推,第二大第三大依次得到,所以上面的j要减去i,避免重复运算
本文详细描述了一种冒牌排序算法,通过嵌套for循环实现数组元素的比较和交换,确保每次找到剩余部分的最大值,避免重复。主要关注点是数组操作和优化算法效率。
864

被折叠的 条评论
为什么被折叠?



