6-2 编写函数实现直接插入排序 分数 30 作者 YJ 单位 西南石油大学 编写函数实现直接插入排序。输入若干正整数,以0结束,采用直接插入排序将这些整数按照从大到小的顺序排序。 函数接口定义: void InsertSort(SqList &L); 其中 L 是待排序的关键字,采用顺序表存储。 裁判测试程序样例: #include <iostream> using namespace std; #define MAXSIZE 20 //顺序表的最大长度 typedef int ElemType; //顺序表的存储结构 typedef struct { ElemType *r;//存储空间的基地址 int length; //顺序表长度 }SqList;//顺序表类型 void InsertSort(SqList &L); void Create_Sq(SqList &L) { int i,n; cin>>n; i=1; while(n>0) { L.r[i]=n; cin>>n; i++; } L.length=i-1; } void show(SqList L) { int i; for(i=1;i<=L.length;i++) cout<<L.r[i]<<" "; } int main() { SqList L; L.r=new ElemType[MAXSIZE+1]; L.length=0; Create_Sq(L); InsertSort(L); show(L); return 0; } /* 请在这里填写答案 */ 输入样例: 5 9 1 3 0 输出样例: 在这里给出相应的输出。例如: 9 5 3 1
时间: 2024-04-02 17:35:05 浏览: 92
直接插入排序的单链表的实现
题目描述
编写函数实现直接插入排序。输入若干正整数,以0结束,采用直接插入排序将这些整数按照从大到小的顺序排序。
函数接口定义:
void InsertSort(SqList &L);
其中 L 是待排序的关键字,采用顺序表存储。
样例
输入样例:
5 9 1 3 0
输出样例:
9 5 3 1
算法思路
直接插入排序的基本思想是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。
算法步骤:
1、将第一个元素看做已经有序,从第二个元素开始,每次将一个待排序的元素,插入到前面已经排好序的数列中。直到所有元素都被插入到前面有序的数列中。
2、插入操作的实现:从后向前查找插入位置,找到插入位置后,将该位置后面的所有元素向后移动一位,再将该元素插入到该位置。
C++ 代码
阅读全文