基于顺序表的排序

任务内容

基于一个顺序表,实现如下排序算法:

  1. 直接插入排序;
  2. 交换排序 (冒泡);
  3. 简单选择排序

代码实现

#include<iostream>
#include<string>
using namespace std;
#define keytype int
typedef struct{
	keytype key;
}datatype; 
//简单选择排序
void Select_sort(datatype R[],int n)
{
	int i,j,k;
	for(i=0;i<=n-1;i++)
	{
		k=i;
		for(j=i+1;j<n;j++)
		{
			if(R[j].key<R[k].key)
			{
				k=j;
			}
		}
		if(i!=k)
		{
			swap(R[i],R[k]);
		}
	}
} 

//直接插入排序
void DInsert_sort(datatype R[],int n)
{
	int i,j;
		for(i=2;i<=n;i++)
	if(R[i].key<R[i-1].key)
		{ 
		R[0]=R[i];
			for(j=i-1;R[0].key<R[j].key;j--)
		{	R[j+1]=R[j]; //后移 
			}
		R[j+1]=R[0];
	}
}
//冒泡排序
void Bubble_sort(datatype R[],int n)
{
	int i,j,s;
	for(i=0;i<n-1;i++)
	{
		s=0;
		for(j=n-1;j>i;j--)
		if(R[j].key>R[j-1].key)
		{
			swap(R[j-1],R[j]); 
			s=1;
		}
		if(s==0)break;
	}
}
void Display(datatype R[],int lengh,int i)//遍历打印函数 
{
	for(i;i<lengh;i++)
	{
		printf("%5d",R[i]);
	}
	cout<<endl;
}
int main()
{
	datatype arr3[]={0,9,8,7,6,5};//R[0]为监视哨,不是要排序的关键码 ,打印也从R[1]开始 
	//但是R[0]也需要传值进去,不然排序后输出会越界 
	int len3=(int)sizeof(arr3)/sizeof(*arr3);
	cout<<"原顺序表      :";
Display(arr3,len3,1);
    cout<<"直接插入排序后:";
    DInsert_sort(arr3,len3);
Display(arr3,len3,1);
	
cout<<"------------------------------"<<endl;
	datatype arr[]={4,7,3,8,2};
	int len=(int)sizeof(arr)/sizeof(*arr);
	cout<<"原顺序表      :";
    Display(arr,len,0);
    cout<<"冒泡排序后:    ";//结果是反序的需要逆序打印 
    Bubble_sort(arr,len);
    for(int i=len-1;i>=0;i--)
    {
		printf("%5d",arr[i]);
	}
cout<<endl;
cout<<"------------------------------"<<endl;
      datatype arr2[]={1,9,3,4,7};
	int len2=(int)sizeof(arr2)/sizeof(*arr2);
	cout<<"原顺序表      :";
    Display(arr2,len2,0);
	cout<<"简单选择排序后:";
		Select_sort(arr2,len2);
   Display(arr2,len2,0);
return 0;
}

结果展示

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/725987.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Javaweb登录校验

登录校验 JWT令牌的相关操作需要添加相关依赖 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version> </dependency>一、摘要 场景&#xff1a;当我们想要访问一个网站时&am…

真空玻璃可见光透射比检测 玻璃制品检测 玻璃器皿检测

建筑玻璃检测 防火玻璃、钢化玻璃、夹层玻璃、均质钢化玻璃、平板玻璃、中空玻璃、真空玻璃、镀膜玻璃夹丝玻璃、光栅玻璃、压花玻璃、建筑用U形玻璃、镶嵌玻璃、玻璃幕墙等 工业玻璃检测 钢化安全玻璃、电加温玻璃、玻璃、半钢化玻璃、视镜玻璃、汽车安全玻璃、汽车后窗电热…

Docker+MySQL:打造安全高效的远程数据库访问

在现代应用开发和部署中&#xff0c;数据库是关键组件之一。无论是开发环境还是生产环境&#xff0c;快速、可靠地部署和管理数据库都是开发人员和运维人员面临的常见挑战之一。 Docker是一种流行的容器化技术&#xff0c;它使得应用程序的部署和管理变得非常简单和高效。通过使…

大数据-数据分析初步学习,待补充

参考视频&#xff1a;数据分析只需3小时从入门到进阶&#xff08;up亲身实践&#xff09;_哔哩哔哩_bilibili 数据指标&#xff1a; 对当前业务有参考价值的统计数据 分类&#xff1a;用户数据&#xff0c;业务数据&#xff0c;行为数据 用户数据 存量&#xff1a; DAU&#…

CSS3中鲜为人知但非常强大的 Clip-Path 属性

CSS3中鲜为人知但非常强大的 Clip-Path 属性 在CSS3中,clip-path属性可以让我们快速创建各种各样的不规则图形,而无需使用图片或者复杂的绘图工具。它可以帮助我们实现一些非常出色的视觉效果,但遗憾的是它并不是很常见。 clip-path属性可以接受多种不同的值,比如polygon()、…

Matlab终于能够实现Transformer预测了

声明&#xff1a;文章是从本人公众号中复制而来&#xff0c;因此&#xff0c;想最新最快了解各类智能优化算法及其改进的朋友&#xff0c;可关注我的公众号&#xff1a;强盛机器学习&#xff0c;不定期会有很多免费代码分享~ 目录 原理简介 数据介绍 结果展示 完整代码 今天…

Day9—Spark运行模式及RDD的创建

Spark概述 大数据开发的总体架构 可以看到&#xff0c;在数据计算层&#xff0c;作为Hadoop核心组成的MapReduce可以结合Hive通过类SQL的方式进行数据的离线计算&#xff08;当然也可以编写独立的MapReduce应用程序进行计算&#xff09;&#xff1b;而Spark既可以做离线计算&a…

金属配件加工厂设备远程监控

随着科技的飞速发展&#xff0c;智能制造已成为制造业转型升级的重要方向。在金属配件加工领域&#xff0c;设备的稳定运行和高效管理对于提升产品质量、降低生产成本至关重要。HiWoo Cloud平台凭借其强大的远程监控功能&#xff0c;为金属配件加工厂提供了全新的解决方案&…

RabbitMQ详解-06RabbitMQ高级

1. 过期时间TTL 可以对消息设置预期的时间&#xff0c;在这个时间内都可以被消费者接收获取&#xff1b;过了之后消息自动被删除。RabbitMQ可以对消息和队列设置TTL。有以下两种设置方法&#xff1a; 通过队列属性设置&#xff0c;队列中所有消息都有相同的过期时间。对消息进…

省市区下拉选择:3个el-select(附完整代码+json)

目录 直接上做出的效果&#xff1a; 页面代码&#xff1a; 使用click.native&#xff1a; data及引入&#xff1a; 初始化&#xff1a; methods&#xff1a; JSON: 示例结构&#xff1a; 1.code.json 2.pca-code.json 回显&#xff1a; 视频效果&#xff1a; 直接上做出…

5个好用的中文AI大语言模型_中文大语言模型

AI大语言模型&#xff08;Large Language Models, LLMs&#xff09;是近1-2年来人工智能领域的重要发展&#xff0c;它们通过深度学习技术&#xff0c;特别是基于Transformer的架构&#xff08;如GPT、BERT等&#xff09;&#xff0c;实现了对自然语言处理的巨大突破。 AI大语…

Vulkan入门系列2- 绘制三角形

概述&#xff1a; Vulkan的学习曲线是比较陡峭的&#xff0c;学习Vulkan刚开始像是在爬一个陡坡&#xff0c;等上了这个陡坡之后&#xff0c;后面学习曲线就相对比较平缓了。那么在Vulkan中绘制一个三角形&#xff0c;就相当于是在爬这样一个陡坡&#xff0c;因为绘制三角形需…

「51媒体」时尚类媒体邀约宣发资源

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 时尚类媒体邀约宣发资源可以多样化且针对性地满足品牌或活动的推广需求。以下是一些主要的资源及其特点&#xff1a; 时尚杂志&#xff1a;国内外知名时尚杂志&#xff0c;如《Vogue》、…

SparkSQL的分布式执行引擎-Thrift服务:学习总结(第七天)

系列文章目录 SparkSQL的分布式执行引擎 1、启动Thrift服务 2、beeline连接Thrift服务 3、开发工具连接Thrift服务 4、控制台编写SQL代码 文章目录 系列文章目录前言一、SparkSQL的分布式执行引擎(了解)1、启动Thrift服务2、beeline连接Thrift服务3、开发工具连接Thrift服务4、…

MS3121地隔离放大器

MS3121 是一款应用于车载音频系统的地隔离放大 器。芯片可以很好地解决汽车音频系统中的绕线电阻问 题&#xff0c;以及由车载电子设备带来的噪声问题。另外&#xff0c;芯片 所需要的外围电容小&#xff0c;便于系统的集成。注意&#xff0c;芯片的 地电位需要和后级音频功…

Flutter第十四弹 抽屉菜单效果

目标&#xff1a; 1.怎么构建抽屉菜单效果&#xff1f; 2.抽屉菜单怎么定制&#xff1f; 一、抽屉菜单 侧滑抽屉菜单效果 1.1 抽屉菜单入口 Flutter 的脚手架Scaffold&#xff0c;默认提供了抽屉菜单效果入口。 主页面采用一个简单的页面&#xff0c;侧滑菜单首先使用一个I…

ARP地址解析协议详解:

ARP&#xff1a;地址解析协议 – 以下3种ARP正常均只能在同一个广播域内使用 AARP 正向ARP 已知对端IP地址&#xff0c;通过广播来获取对端的MAC地址 RARP 反向ARP 已知对端的MAC地址&#xff0c;通过二层单播、三层广播来获取对端的IP地址 FARP 无故ARP 在设备刚获取…

电商API接口详述:涵盖订单、库存等多功能接口介绍

电商商家自研管理系统&#xff0c;线下ERP系统或WMS系统想要接入电商平台订单打单发货&#xff0c;通过点三电商API可以一键对接多个电商平台&#xff0c;帮助商家、ERP/WMS服务商快速开发电商模块&#xff0c;实现电商业务管理功能&#xff0c;那么点三电商API接口有哪些可用接…

HTTP 抓包工具——Fiddler项目实战

网络爬虫实质上是模拟浏览器向 Web 服务器发送请求。对于一些简单的网络请求&#xff0c;我们 可以通过查看 URL 地址来构造请求&#xff0c;但对于一些稍复杂的网络请求&#xff0c;仍然通过观察 URL 地 址将无法构造正确。因此我们需要对这些复杂的网络请求进行捕获分…

一文带你理清同源和跨域

1、概述 前后端数据交互经常会碰到请求跨域&#xff0c;什么是跨域&#xff0c;为什么需要跨域&#xff0c;以及常用有哪几种跨域方式&#xff0c;这是本文要探讨的内容。 同源策略(英文全称 Same origin policy)是浏览器提供的一个安全功能。同源策略限制了从同一个源加载的…