数据结构实训——排序的实现(选择与直接排序)

本文介绍了两种简单的排序算法:选择排序和直接插入排序。选择排序通过每次选取未排序区间的最小元素与首位交换实现排序;直接插入排序则是通过在已排序区间从后向前扫描找到合适位置插入新元素来完成排序。文章提供了每种排序方法的算法步骤、输入输出说明,并给出了代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 选择排序

简单排序:简单选择排序是一种简单直观的排序算法,首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

  • 算法步骤:

    1. 初始状态:无序序列为R[0,n−1],长度n,有序区为空;

    2. 第i=1,..,n−1趟排序从当前无序区R[i−1,n−1]中选出最小的元素R[k],并将它与无序区的第1个记录R[i−1]交换,则R[0,i−1]变为元素个数增加1的新有序区,R[i,n−1]变为元素个数减少1的新无序区;

    3. n−1趟选择交换后结束。

输入输出说明

输入n(1<=n<=100),输入n个整数,对着n个整数采用简单选择排序方法进行升序排序,每趟简单选择排序过程采用从左至右选择首次出现的最小值,输出前三趟以及最终的排序序列,例如以下所示:

测试输入:
10
7 1 4 6 8 9 5 2 3 10
预期输出:
1 7 4 6 8 9 5 2 3 10
1 2 4 6 8 9 5 7 3 10
1 2 3 6 8 9 5 7 4 10
1 2 3 4 5 6 7 8 9 10

测试输入:
15
3 44 38 5 47 15 36 26 27 2 46 4 19 50 48
预期输出:
2 44

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值