西绿柿556 2021-12-10 19:20 采纳率: 40%
浏览 90
已结题

c语言递归排序问题--优化冒泡排序

“冒泡法”将当前数组里最大的一个元素通过若干次相邻元素的交换,冒到顶部(即排到正确的位置)。然后将数组规模减小1,对这个子数组重复冒泡过程,执行n-1遍后当前数组即为有序数组。选择排序实际是对“冒泡法”的优化算法:每次只需一次交换就可以将一个元素放到正确的位置。对于当前数组,通过一次扫描,查找数组中的最小元素。然后将最小元素与当前数组中第一个元素交换。对从二个元素开始到最后元素结束的这个子数组重复这个过程。执行n-1遍后有序。这种排序与冒泡排序相似,对于n个元素的数组,要n-1遍,对每个子数组,要用n-1次比较以求得最小值。当处理包含一个元素的子数组时,数组已经排序完毕。编写递归程序,完成这个算法。

输入格式

  第一行:一个整数n(n<=100)
  第二行:n个整数a[i](保证a[i]在int范围内)

输出格式

  按倒序(从最后一步到第一步)输出若干次交换步骤,以 i<->j:当前数组 的形式输出,i和j表示进行交换的两个元素在当前数组中的下标(从1开始,j是当前找到的最小元素的下标),每个步骤占一行;(如果a[i]本来就在正确的位置,则不需要交换)
  紧接一行:以Total steps:tot 的形式输出,tot表示总的交换次数;
  最后一行:以Right order:正确序列 的形式输出。

输入样例

5
3 1 2 4 5

输出样例

2<->3:1 2 3 4 5
1<->2:1 3 2 4 5
Total steps:2
Right order:1 2 3 4 5

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月18日
    • 创建了问题 12月10日

    悬赏问题

    • ¥15 Android Navigation: 某XDirections类不能自动生成
    • ¥20 C#上传XML格式数据
    • ¥15 elementui上传结合oss接口断点续传,现在只差停止上传和继续上传,各大精英看下
    • ¥100 单片机hardfaulr
    • ¥20 手机截图相片分辨率降低一半
    • ¥50 求一段sql语句,遇到小难题了,可以50米解决
    • ¥15 速求,对多种商品的购买力优化问题(用遗传算法、枚举法、粒子群算法、模拟退火算法等方法求解)
    • ¥100 速求!商品购买力最优化问题(用遗传算法求解,给出python代码)
    • ¥15 虚拟机检测,可以是封装好的DLL,可付费
    • ¥15 kafka无法正常启动(只启动了一瞬间会然后挂了)