C语言-选择排序算法

实验7:3.选择法排序:输入一个正整数n(1<n≤10),再输入n个整数,将他们从大到小排序后输出。试编写相应程序。 #include<stdio.h> int max(int a[],int len); int main() { //数据存入 int i,n; scanf("%d",&n); int a[n]; for(i=0;i<n;i++){ scanf("%d",&a[i]); } int len=sizeof(a)/sizeof(a[0]) ; //选择排序 for(i=len-1;i>0;i--){ int ma 阅读详情

选择排序

要求

输入一个正整数n(1<n≤101<n\le101<n≤10),再输入n个整数,用选择排序法将它们从小到大排序后输出。

算法步骤

  • 第一步:在未排序的 n 个数(a[0] ~ a[n - 1])中找到最小数,将它与 a[0] 交换;
  • 第二步:在剩下未排序的 n - 1 个数(a[1] ~ a[n - 1])中找到最小数,将它与 a[1] 交换;
  • ……
  • 第 n - 1 步:在剩下未排序的2个数(a[n - 2] ~ a[n - 1])中找到最小数,将它与 a[1] 交换;

算法流程图

算法流程图

示例源代码

/* 选择法排序 */
#include <stdio.h>
int main()
{
	int i, index, k, n, temp;
	int a[10];			//	定义1个数组a,它有10个整型元素
	printf("Enter n:"); //	提示输入n
	scanf("%d", &n);
	printf("Enter %d integers:", n); //	提示输入n个数
	for (i = 0; i < n; i++)			 //	将输入数一次赋给数组a的n个元素a[0]~a[n-1]
		scanf("%d", &a[i]);
	/* 对n个数排序 */
	for (k = 0; k < n - 1; k++)
	{
		index = k;					//	index存放最小值所在的下标
		for (i = k + 1; i < n; i++) //	寻找最小值所在的下标
			if (a[i] < a[index])
				index = i;
		temp = a[index]; //	最小元素与下标k的元素交换
		a[index] = a[k];
		a[k] = temp;
	}

	printf("After sorted:");
	for (i = 0; i < n; i++)
		printf("%d", a[i]);
	printf("\n");

	return 0;
}

运行结果

Enter n:5

Enter 5 integers:3 5 2 8 1

After sorted:1 2 3 5 8

摘自高等教育出版社《C语言程序设计(第3版)》(何钦铭,颜晖主编)

Python123——第二次Python上机题 素数又称质数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。在一般领域,对正整数n,如果用2到 n-1之间的所有整数去除,均无法整除,则n为素数。(该算法可优化)‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬题目要求:求出100以内的所有素数并输出,素数之间以一个英文空格区分。无。 阅读详情

相关推荐

选择排序算法详解之C语言版

选择排序算法原理就是首先固定一个位置i,用该位置上的元素data与后面的元素data_j依次比较大小。以从小到大排序为例,如果data > data_j,则交换这两个数据,直到位置i之后的所有元素都小于该位置上的元素结束。之后执行i++即可完成该数组的排序。

sunnyoldboy博客 8472

选择排序法

选择排序法。输人一个正整数n (1<n≤10), 再输人n个整数,用选择法将它们从小到大排序后输出。 算法步骤如下: 第1步:在未排序的n个数(a [0] ~a [n- 1])中找到最小数,将它与a [0]交换; 第2步:在剩下未排序的n- 1个数(a [1] ~a [n- 1])中找到最小数,将它与a[1]交换; 第n-1步:在剩下未排序的2个数(a [n-2] ~a [n- 1] )中找...

qq_40443457的博客 1174

C语言实现简单选择排序算法

简单选择排序算法的基本思想就是在数组中每次利用第n此循环中的n-i+1个记录中的最小数拿出来有序排序 int a[10] = { 5,67,32,6,45,67,8,32,43,56 }; int i,j,t; for (i = 0; i < 10; i++) { for (j = 0; j < 9; j++) { if (a[j] > a[j + 1]...

qq_45044292的博客 1382

C语言程序设计 例7-5

例7-5 原题:选择排序法。输入一个正整数n(1<n<=10),再输入n个整数,用选择法将它们从小到大排序后输出。 课本给出源程序及我的理解 //选择排序法 #include<stdio.h> int main() { int i,index,k,n,temp; //依次输入用到i,中间量index,从第一项到倒数第二项的k,输入个数n,交换用到中间变量temp int a[10]; //定义一个长度为10的数组 printf("Enter n: ");//提示输入数字

qq_52801315的博客 2711

C语言试题175之实现选择排序算法

题目:实现选择排序(Selection sort)选择排序是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。 [1]基本思想: 在长度为N的无序数组中,第一次遍历n-1个数,找到最小的数值与第一个元素交换; 第二次遍历n-2个数,找到最小的数值与第二个元素交换; 。。。 第n-1次遍历,找到

码莎拉蒂 2739

C语言试题八十七之实现选择排序算法

1、题目 C语言选择排序算法 2 、温馨提示 C语言试题汇总里可用于计算机二级C语言笔试、机试、研究生复试中C程序设计科目、帮助C语言学者打好程序基础、C语言基础,锻炼您的逻辑思维和解决问题的能力,帮助你成为C语言笔试、机试解题高手,帮助你拿到C语言工作的offer,每一个题目都附带源代码和运行结果,让你不再有任何困惑,妈妈再也不担心我的C语言了。如果程序有任何看不懂或者哪个步骤不理解的地方都可以加我微信(15874274916)私聊我,或...

码莎拉蒂 4588

【C语言】循环练习1 输入一个正整数n,然后输入n个整数,输出这n个整数中大于10的数字的个数和总和

#【C语言】循环练习1 描述: 输入一个正整数n,然后输入n个整数,输出这n个整数中大于10的数字的个数和总和 输入: 一个正整数n,然后是n个整数 输出 这n个整数中所有大于10的数字的个数以及大于10的数字的总和,两个数字中间用空格相隔,不要换行 样例输入: 3 12 5 2 样例输出: 2 32 [源码] #include <stdio.h> int main() { int n,i,j,k,l=0,m=0; scanf("%d",&n); for(i=1;i<=n;i++)

weixin_49937295的博客 1万+

C语言实现选择排序算法实战

选择排序的实现从定义一个基础函数开始。在C语言中,我们可以定义一个名为的函数,该函数接受一个整型数组和数组的长度作为参数。这样设计的目的是为了能够对任意长度的数组进行排序。数组将被修改为排序后的顺序,因此不需要返回任何值,排序将在原数组上完成。for (i = 0;i < n-1;j++) {// 交换元素参数arr是一个指向数组第一个元素的指针,而n是数组的长度。

weixin_30820933的博客 999

C语言 选择排序算法

C语言 选择排序算法 #include <stdio.h> #include <stdlib.h> //选择排序算法 void selectSort(int *arr,int n) { int temp, i, j; int k; for(i = 0; i < n - 1; i++) { k = i; for(j = i + 1; j < n; j++) {//循环遍历查找最小的数 if( arr[k] > arr[j])

weixin_45796808的博客 618

C语言实现选择法排序算法教程.zip

函数定义提供了函数的具体实现,包括函数体(代码块)。// 函数体对于add函数的定义,它可能看起来是这样的:在这个例子中,函数add的目的是将两个整数相加,并返回结果。选择排序的定义是:首先在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的特点是:算法的交换次数与待排序序列的初始状态无关,每一轮排序至少会移动一次。

weixin_42124497的博客 782

ACM算法模板 · 一些常用的算法模板-模板合集(打比赛专用)

萌新常用的都在这了,本萌新的模板集。

张天枭の博客 5万+

C语言实现排序之选择排序算法

选择排序算法是一种简单直观的排序方法,其基本思想是在每一趟排序过程中,从未排序的序列中挑选出最小(或最大)的元素,将其放到排序序列的起始位置(或末尾),直到所有元素均排序完毕。

2403_83044722的博客 2687

LTspice仿真报错Timestep too small?5种实测有效的解决方法(附详细参数配置)

本文针对LTspice仿真中常见的“Timestep too small”报错,提供了5种经过实测有效的解决方案。从理解错误根源入手,详细介绍了调整求解器、仿真参数、优化精度容差、设置初始条件、为理想元件添加寄生参数以及使用高级指令等具体方法,并附有详细的参数配置步骤,帮助工程师快速定位并解决仿真收敛问题,提升电路设计效率。

weixin_29213655的博客 280

C语言中的选择排序算法

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

tide_surging的博客 1267

【数据库】银行/信贷业务测试工作中涉及的数据库表格

银行/信贷业务测试工作中涉及的数据库表格,金融信贷测试人必看!

孤之鹜的博客 1169

MTK MT6833平台屏幕与TP驱动移植实战:从FAE伪代码到内核模块集成

本文详细介绍了在MTK MT6833平台上进行屏幕与TP驱动移植的完整实战流程。文章从解析供应商提供的初始化伪代码入手,逐步拆解了在LK阶段点亮屏幕、在内核层集成Panel驱动以支持休眠唤醒,以及移植并调试sitronix_ts触摸驱动的核心步骤与关键技巧,为嵌入式开发人员提供了从零到一集成新硬件的清晰指南。

rnn9storyteller的博客 441

C语言之选择排序算法

C语言学习交流群:648422161。志同道合的小伙伴可以进群交流哦! 对于选择排序,咱们首先理解排序的思想。给定一个数组,这种思想首先假定数组的首元素为最大或者最小的。此时就要利用3个变量表示元素的下标。一个表示当前,一个表示找到的最大或者最小的下标,一个用于存放每次循环中最大值的下标。在掌握了程序的基本思想之后,再进行排序。找到最大的下标后赋给每次除非的那个最大的下标。找到之后判断所假设的当前值是否为此次循环的最大值,如果不是,就交换最大 与当前的值,从而将数组以一定的顺序排放。其实 简而言之就是每次找

sun5739的博客 2428

嘉立创EDA vs Altium Designer:新手如何选择?从界面到实战全对比

本文全面对比了嘉立创EDA与Altium Designer(AD)两大PCB设计工具,从设计哲学、界面交互、封装库管理、设计规则引擎、协作功能到成本生态六大维度进行深入分析。嘉立创EDA以极简设计和云端协作为特色,适合学生和创客快速上手;而AD则凭借专业级精准控制,成为高端电子设计的行业标准。通过实战案例和详细对比表格,帮助新手根据项目需求选择合适的EDA工具。

weixin_30296405的博客 720

选择排序算法-C语言实现详解及其升级学习

文章目录前言一、选择排序是什么?概念释义理论理解二、使用步骤1.核心函数2.读入数据总结 前言 提示: 提示:以下是本篇文章正文内容 一、选择排序是什么? 概念释义 选择排序是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方

追求卓越 2277

如何用python自己复现worldquant brain中的回测结果

本文介绍了在Python中复现WorldQuant Brain平台上alpha 101因子1和4的回测框架构建要点。重点分析了Brain平台的策略设置:使用TOP 3000高流动性股票(可用中证1000/2000替代);delay=1表示t日信号在t+1日开盘调仓;详细解释了market/sector/industry/subindustry四级中性化方法;说明了decay参数控制持仓权重线性衰减;以及TRUNCATION参数限制单股仓位风险。文章还探讨了不同调仓时点的实现差异,为自主构建量化回测系统提供了

夏之微风的博客 733

深入探讨 SAP ERP 物料主数据中的 Valuation Type

在 SAP ERP 系统中,是用于区分同一种物料在不同条件下的估价方法。物料的估价可以因产地、质量等级、供应商或批次的不同而有所差异。通过为物料设置不同的估价类别,使企业能够对这些差异进行有效管理。为了实现更细致的物料成本核算,SAP 系统通过(分批估价)功能允许为同一物料设置多个估价类型。这种方法特别适合那些在来源、质量、或其他参数上存在显著差异的物料。是 SAP ERP 和 SAP S/4HANA 中物料主数据的核心组成部分,为企业提供了灵活的成本管理工具。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1407

C语言实现选择排序算法

选择排序算法

qq_58417838的博客 3386

高通Camx功能feature分析之八:高通NCS服务之架构和初始化

本文介绍了高通NCS(NONCameraSensor)服务的架构与初始化流程。NCS服务通过QMI接口访问非相机传感器,为CameraEIS、AEC等算法节点提供陀螺仪、加速度计等传感器数据支持。文章详细解析了NCS服务的分层架构,包括客户端、服务端、QSEE接口实现等组件,并重点分析了初始化过程中获取传感器列表、查询能力等关键步骤。通过camxsetting.xml中的enableNCSService开关控制服务启动,初始化过程涉及QSEE单例创建、传感器能力查询等核心操作。后续文章将继续深入讲解相关技术

929

c语言选择排序法程序设计,C语言基础之选择排序算法和代码

在利用C语言进行编写程序的过程中,我们会常常通过算法及其代码来进行相关程序的编写工作。今天课课家笔者先给大家介绍C语言算法中的选择排序算法以及代码。那么到底什么是选择排序算法呢?下面由笔者慢慢道来。在C语言中,选择排序是排序算法的一种常用的算法,选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、...

weixin_33736210的博客 1357

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【C语言】选择排序算法实现

选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。 void selection_sort(int a[], int n) { int p, temp; for (int i = 0; i < n-1; i++) { p = i; for (int j = i; j < n; j++) if(a[p] > a[j]) p = j;

CZW1234R的博客 168

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 用C语言解决逢7击掌问题
下一篇: C语言-冒泡排序算法
爱编程的小芯
博客等级 码龄6年 183粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值