c++编程大神求助!!!学军OI排序算法!!

// 轮数为元素个数减一 // 对比次数=个数-轮数-1 // 如果前一个比后一个大则交换
………大小,直到遍历完数组所有的元素,也就完成了排序。
我们可以把上述代码总结成一种模型,即,上述代码可以对任意一组数据的任意一段连续数据进行排序(仅需改变上述代码的初始化条件以及循环结束条件即可实现),而这一思想的典型应用就是 “滚动的榜单”问题。
当然,上述代码也可以用for循环实现,但个人认为,用while循环,更能体现其思想本质,尤其是通过变量head,体现比较范围的变换。且在实际应用时,个人感觉,用while循环实现更加方便。二):冒泡排序
代码如下(以正序输出为例)

上述代码的运行结果为:
上述代码的思想是:首先,用数组的第一个元素与剩下的元素比较,并将最小的元素调到第一位;然后,用数组的第二个元素与剩下的元素比较,并将最小的元素调到第二位;以此类推,当head等于n时,就完成了排序
上述算法,对于不搞竞赛的同学来说,应该是最常用的排序方法了。
上述代码同样可以用for循环实现。
具体代码如下(以升序形式输出)

我要回帖

更多关于 公认最好的排序算法 的文章

 

随机推荐