冒泡排序和简答选择排序

news2025/1/15 22:44:15

冒泡排序

一种典型的交换排序
类似水冒泡,大元素经不断的交换由水底慢慢的浮出
从头到尾,循环比较两相邻的元素
    大的元素移到后面,小的放前面-每次循环,大的元素会排到最后

代码如下: 

#include<stdio.h> 
#include<stdlib.h>
//升序排序
void Bubble_sort(int a[], int size){
	int i,j,temp;
	for(int i=0 ; i<size-1 ;i++) //size-1 : 不用和自己比较
	{
			int flag =0;//比较记号
			//在a[0]到a[size-i-1]之间比较,将最大的数放最后(即a[size-i-1])
			for(int j=0 ; j<size-i-1 ; j++)	
			{
				if(a[j] > a[j+1])//比较,大的在后面
				{
					temp = a[j]; a[j]= a[j+1]; a[j+1]=temp;
					flag =1;
				}
			}
			//若flag为0,则在该轮次没有交换动作,说明排序已经完成,break跳出循环
			if(flag == 0 ) break;	
	}
}

void main()   
{	
	int a[10];
	printf("输入10个整形数据(整数):");
	for(int i=0;i<10 ; i++)
		scanf("%d",&a[i]);  
	
	Bubble_sort(a,10);	//排序处理
	printf("排序后的数组:\n");
	for(int i=0;i<10 ; i++)
		printf("%d ",a[i]);  

	system("pause");//屏幕暂停
}

简单选择排序

简单选择排序(Select Sort)示意图如下图所示。 

 

代码如下:

#include<stdio.h> 
#include<stdlib.h>

void SelectSort(int arr[],int n){
	//minIndex用于记录每一趟中最小元素的下标
	int i,j,temp,minIndex;
	/*
		外层循环,用于控制第1层到第n-1轮排序
		第i轮循环时,后面部分的元素的下标范围为(i-1) 到 (n-1)
	*/
	for( i=1; i<n ; i++ ){
		//将后面(未排序)部分的第1个元素赋予minIndex
		minIndex = i-1;

		for(j =i ; j < n ; j++ ){	//找到本轮循环中最小元素
			if( arr[j]<arr[minIndex] ){	
				minIndex = j;
			}
		}
		//若本轮中最小的元素不是后面部分的第1个元素,则需要交换元素
		if(minIndex != i-1 ){
			temp=arr[minIndex]; arr[minIndex]=arr[i-1]; arr[i-1]=temp;
		}
	}
}

void main(){	
	int a[10];
	printf("输入10个整形数据(整数):");
	for(int i=0;i<10 ; i++)
		scanf("%d",&a[i]);  
	
	SelectSort(a,10);	//排序处理
	printf("排序后的数组:\n");
	for(int i=0;i<10 ; i++)
		printf("%d ",a[i]);  
	printf("\n");
	system("pause");//屏幕暂停
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

lvm删除分区、扩容分区

删除分区 查询分区信息 lsblk删除home盘 解除home文件挂载 unount /home // 查询挂载情况 mount -l | grep home 删除分区 //删除逻辑区 lvdisplay lvremove /dev/centos/home// 扩容root lvdisplay lvextend -l 100%FREE /dev/centos/root // 更新磁盘 根据文件系统类型…

推动产业升级及创新,Doris Summit Asia 2023 先进智造与电信论坛提前揭秘

峰会官网已上线&#xff0c;最新议程请关注&#xff1a;doris-summit.org.cn 即刻报名 Doris Summit 是 Apache Doris 社区一年一度的技术盛会&#xff0c;由飞轮科技联合 Apache Doris 社区的众多开发者、企业用户和合作伙伴共同发起&#xff0c;专注于传播推广开源 OLAP 与…

化妆品斑贴测试HRIPT/RIPT

HRIPT/RIPT测试是一种针对人类皮肤的安全性评估测试&#xff0c;它可以检测潜在的皮肤刺激和过敏物质。这项测试是根据国际标准制定的&#xff0c;通过将化妆品样品涂抹在人体皮肤上&#xff0c;观察是否会引发不适或过敏反应来评估产品的安全性。这些测试通常由专业的实验室进…

玩转MaxCompute SQL训练营! 数据分析挖掘迅速出师

用MaxCompute在数据里面挖呀挖呀挖&#xff0c;写花样的sql分析花样的数据&#xff01;云原生大数据计算服务 MaxCompute 是企业级Serverless智能数仓&#xff0c;向用户提供了完善的数据导入方案以及多种经典的分布式计算模型&#xff0c;能够更快速的解决用户海量数据计算问题…

门店经理视角下的零售数据分析分享

门店经理视角下的零售数据分析是怎样的&#xff1f;是以提升销售额和客户满意度为目标&#xff0c;通过数据分析工具对门店的运营情况进行分析和优化。那&#xff0c;作为主要载体的零售数据分析报表又该怎么做&#xff1f; 站在门店经理的立场看&#xff0c;门店的零售数据分…

IDEA如何设置项目包名分级

按上面的勾选即可&#xff01;

儿童疫苗接种:安全与注意事项

引言&#xff1a; 儿童的疫苗接种是维护其健康和预防传染病的重要措施。疫苗可以有效地保护儿童免受各种疾病的威胁&#xff0c;但在接种过程中需要家长和监护人特别关注一些注意事项&#xff0c;以确保接种的安全性和有效性。本文将深入探讨儿童疫苗接种的重要性&#xff0c;…

SpringCloud之Eureka注册中心解读

目录 Eureka基础概念 概述 Eureka Serve Eureka Client EnableEurekaServer EnableEurekaClient java代码实战 实战架构 父工程pom文件 eureka-server服务 student-service服务 teacher-service服务 测试 Eureka基础概念 概述 ​ Eureka 又称 服务注册中心&#…

WMS系统批次管理

一、定义 WMS系统的批次管理是指对物料和商品的生产批次进行跟踪、管理和控制的过程。批次是指一组具有共同特征的物料或商品&#xff0c;如生产日期、有效期、供应商、批号等。批次管理通过记录和追踪批次信息&#xff0c;确保物料和商品在供应链中的准确性、可追溯性和质量控…

基于ConvNeXt的跨模态特征融合模型用于RGB-D语义分割

A Cross-Modal Feature Fusion Model Based on ConvNeXt for RGB-D Semantic Segmentation 基于ConvNeXt的跨模态特征融合模型用于RGB-D语义分割 Tang X, Li B, Guo J, et al. A Cross-Modal Feature Fusion Model Based on ConvNeXt for RGB-D Semantic Segmentation[J]. Math…

自建应用-企业微信-侧边栏开发配置

企业微信侧边栏开发配置 配置侧边栏配置后效果图js-sdk 配置侧边栏 配置后效果图 js-sdk https://developer.work.weixin.qq.com/document/path/91789

【前端也要学算法系列】经典排序算法JS实现 —— 冒泡排序

一以贯之的努力&#xff0c;不得懈怠的人生。——长洱《天才基本法》 冒泡排序&#xff08;Bubble Sort&#xff09; 它会遍历 数据总个数减一 次需要排序的数列&#xff0c; 每次遍历时&#xff0c;它都会从前往后依次的比较相邻两个数的大小&#xff1b;如果前者比后者大&am…

antdv 锚点无滚动效果

背景&#xff1a;使用antd的锚点时&#xff0c;按照官方文档的用法配置之后发现锚点组件的锚点Title位置没办法随着我的页面滚动而变化&#xff0c;但是点击Title跳转具体锚定位置的功能却是没有问题的 解决方法&#xff1a;getContainer绑定滚动范围容器 <a-anchor class&q…

springboot时间管理系统springboot47

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…

web前端面试-- http的各个版本的区别(HTTP/0.9、HTTP/1.0、HTTP/1.1、HTTP/2.0、HTTP/3.0)

本人是一个web前端开发工程师&#xff0c;主要是vue框架&#xff0c;整理了一些面试题&#xff0c;今后也会一直更新&#xff0c;有好题目的同学欢迎评论区分享 ;-&#xff09; web面试题专栏&#xff1a;点击此处 http的各个版本的区别 HTTP&#xff08;超文本传输协议&…

ICC2: 限制指定net绕线区域

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 有些net有特殊绕线需求&#xff0c;只能在固定区域绕线&#xff0c;这时候就需要用到route corridor命令&#xff0c;参考用法如下: create_routing_corridor -name corridor_b…

【QT开发(9)】QT 中使用CUDA 代码

在之前的文章【CUDA编程&#xff08;1&#xff09;】 初识CUDA编程 写了CUDA相关的知识。最近也在研究 并行异构的课程&#xff0c;在QT里面加入相关的cuda 代码试一下&#xff01; 首先需要 在camke 中开启cuda&#xff0c;参考之前的文章【cmake开发&#xff08;12&#xff…

echarts-liquidfill水球图教程

接到了一个水球图的需求&#xff0c;如上图所示&#xff0c;点击不同的水球&#xff0c;下面的进度条呈现不同维度的百分比情况 。 第一步&#xff0c;安装插件 npm install echarts npm install echarts-liquidfill注意在这里需要查看echarts版本是4还是5&#xff0c;echart…

基于深度学习的地铁客流预测架构

导读 论文题目为&#xff1a;《DeepPF: A deep learning based architecture for metro passenger flow prediction》。是一篇2019年发表于《Transportation Research Part C》的文章&#xff0c;介绍了一种新型的基于深度学习的地铁客流预测架构&#xff0c;通过采取模块化的方…

代码随想录算法训练营第23期day25| 216.组合总和III 、17.电话号码的字母组合

目录 一、&#xff08;leetcode 216&#xff09;组合总和III 剪枝 二、&#xff08;leetcode 17&#xff09;电话号码的字母组合 思路 一、&#xff08;leetcode 216&#xff09;组合总和III 力扣题目链接 状态&#xff1a;已AC&#xff0c;就是在77题的前提下&#xff0c…