栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

交换排序算法的实现

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

交换排序算法的实现

交换排序算法的实现

一、实验目的

(1)掌握常见的交换排序算法的思想及适用条件;
(2)掌握常见的交换排序算法的程序实现。
(3)了解各种交换排序的排序过程及其时间复杂度的分析方法。

二、实验要求

统计成绩: 给出 n 个学生的考试成绩表,每条信息由姓名和分数组成,试
设计一个算法:
(1) 按分数高低次序,打印出每个学生在考试中获得的名次,分数相同的
为同一名次;
(2) 按名次列出每个学生的姓名与分数。

*** 三、实验步骤***

(1)定义结构体。
struct student
{
char name[8];
int score;
}
(2)编写主程序,对数据进行排序。
(3)要求至少采用两种排序算法实现,如冒泡排序、快速排序等算法。
(4)分析两种排序算法的时间复杂度和空间复杂度。

四、实验任务

认真阅读与理解实验内容的具体要求,参考教材相关章节,编写实验程序并
上机调试与测试,完成实验报告的撰写。

以下代码:

采用,冒泡排序,快速排序,和直接插入排序,有兴趣的可以继续加上一些排序

#include
using namespace std;
#define MAXSIZE 100
typedef struct {
	char name[8];
	int score;
} RedType;
typedef struct {
	RedType r[MAXSIZE+1]; //r[0]闲置或用作哨兵单元
	int length; //顺序表长度
} SqList;
void insertList(SqList &L) {
	cout<<"请输入元素个数:"<>n;
	cout<<"请输入"<>L.r[i].name;
		cin>>L.r[i].score;
	}
	L.length=n;
	cout<0)&&(flag==1)) {
		flag=0; //flag置为0,如果本趟排序没有发生交换,则不执行下趟排序
		for (int j=1; j<=m; j++)
			if(L.r[j].score>L.r[j+1].score) {
				flag=1; //flag为1,表示本趟排序发生了交换
				t=L.r[j];
				L.r[j]=L.r[j+1];
				L.r[j+1]=t;
			}
		--m;
	}
}


int findPos(SqList &L,int low,int hight) {
	int pivotkey;
	L.r[0]=L.r[low];
// L.r[0]]=L.r[low];
	pivotkey=L.r[low].score;
	while(low=pivotkey) {
			hight=hight-1;
		}
		L.r[low]=L.r[hight];
		while(low
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/649151.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号