C语言经典100例题(37)--给10个数排序(选择排序和冒泡排序)

2023-10-27

目录

题目

问题分析

选择排序法

冒泡排序法

代码

选择排序法

冒泡排序法

运行结果


题目

 给10个数排序

问题分析

选择排序法

        从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。 每一趟可以确定一个元素的最终位置,经过n-1趟排序就可以使整个排序表有序。

冒泡排序法

        从后往前(或从前往后)两两比较相邻元素的值,若为逆序,则交换他们,直到序列比较完。这是一趟冒泡,结果是将最小的元素交换到待排序列的第一个位置(或者将最大的元素交换到待排序列的最后一个位置)。下一趟冒泡时,前一趟确定的最小元素不再参与比较,每趟冒泡的结果是把序列中最小元素(或最大元素)放到了序列的最终位置。最多做n-1趟冒泡就能把所有的元素排好序。

代码

选择排序法

 

#include<stdio.h>

//选择排序
int main()
{
	int i,j,tep;
	int arr[10] = { 0 };
	int sz = sizeof(arr) / sizeof(arr[0]);//元素个数
	printf("请输入10个数:\n");
	for ( i = 0;i < 10;i++)
	{
		scanf_s("%d", &arr[i]);
	}
	printf("从小到大顺序为:\n");
	for (i = 0;i < sz - 1;i++)//一共进行n-1趟
	{
		for (j = i + 1;j < sz;j++)
		{
			if (arr[i] > arr[j])
			{
				tep = arr[i];
				arr[i] = arr[j];
				arr[j] = tep;
			}
		}
	}
	for (i = 0;i < 10;i++)
	{
		printf(" %d ", arr[i]);
	}
	printf("\n");
	return 0;
}

冒泡排序法

#include<stdio.h>

//冒泡排序
int main()
{
	int i, j, tep;
	int arr[10] = { 0 };
	int sz = sizeof(arr) / sizeof(arr[0]);//元素个数
	printf("请输入%d个数:\n",sz);
	for (i = 0;i < sz;i++)
	{
		scanf_s("%d", &arr[i]);
	}
	printf("从小到大顺序为:\n");
	for (i = 0;i < sz - 1;i++)
	{
		for (j = sz - 1;j > i;j--)//一趟冒泡过程
		{
			if (arr[j-1] > arr[j])//若为逆序
			{
				tep = arr[j-1];  //交换
				arr[j-1] = arr[j];
				arr[j] = tep;
			}
		}
	}
	for (i = 0;i < sz;i++)
	{
		printf(" %d ", arr[i]);
	}
	printf("\n");
	return 0;
}

运行结果

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言经典100例题(37)--给10个数排序(选择排序和冒泡排序) 的相关文章

随机推荐

  • 逻辑回归输出的值是真实的概率吗?

    本文只在博客基础上 在三 指数分布族中有所改动 逻辑回归作为被广泛使用的二分类模型 面试中自然是不可缺少的 但要深刻理解逻辑回归又不是那么容易的 比如说 逻辑回归输出的值是0到1之间的值 这个值是真实的概率吗 逻辑回归为什么要选择sigmo
  • layui树形美化_Layui导航树美化 - walkwithdream的个人空间 - OSCHINA - 中文开源技术交流社区...

    左侧导航 使用方法 skin sidebar layui tree skin sidebar li i color rgba 255 255 255 7 display none layui tree skin sidebar li a c
  • 学习Java——为什么java只有值传递

    目录 Java的求值策略 Java中的对象传递 值传递和共享对象传递冲突吗 总结 参考资料 Java的求值策略 前面我们介绍过了传值调用 传引用调用以及传值调用的特例传共享对象调用 那么 Java中是采用的哪种求值策略呢 很多人说Java中
  • 最优乘车问题/dijsktra最短路径算法

    城是一个旅游胜地 每年都有成千上万的人前来观光 为方便游客 巴士公司在各个旅游景点及宾馆 饭店等地都设置了巴士站 并开通了一些单向巴士线路 每条单向巴士线路从某个巴士站出发 依次途径若干个巴士站 最终到达终点巴士站 阿昌最近到 城旅游 住在
  • typora笔记工具使用详解

    Markdown使用笔记 首先本地使用安装教程 百度搜索typora第一个就是官网 地址为 typora下载地址 下载步骤如下 简单使用教程 3 Markdown标题 使用 号可表示 1 6 级标题 一级标题对应一个 号 二级标题对应两个
  • 读取.ini文件乱码的解决办法

    void CGetConfigInfo GetValueByKey QSettings seting const QString key QString value if seting nullptr value seting gt val
  • Memory write error at 0x100000. MMU section translation fault

    在使用vitis2020 2 JTAG调试MZ702P板子的时候会报下面的错误 原因都是启动模式没有设置到JTAG启动或SD启动 记得之前用SDK的时候好像没有这个问题 记录一下 备忘 Downloading Program F FPGA
  • ONVIF对讲功能漫谈

    ONVIF对讲功能漫谈 前言 一 onvif对讲功能和onvif协议关系大吗 二 如何上报设备支持onvif对讲功能呢 三 onvif协议中哪个接口上报音频解码配置 四 献上抓包报文 前言 本篇文章尝试使用提问的方式来分享onvif对讲功能
  • java类型信息与反射

    初步理解 https www cnblogs com xuanlin666 p 10826809 html
  • 使用Electron开发过程中不能使用remote模块解决

    在 electron 渲染进程中引入BrowserWindow报错 const BrowserWindow require electron remote BrowserWindow 报错 Cannot read properties of
  • c++ADO编程-connection对象

    Connection对象的属性有如下几个 1 ConnectionString属性 是连接字符串 通过传递包含一系列由分号分隔的 argument value 语句的详细连接字符串 可指定用于建立连接数据源的信息 连接串格式根据数据源的不同
  • 3.2面向对象

    面向对象与面向过程的区别 面向过程指的是工作过程如何执行 而面向对象指的是工作该让谁来完成 面向对象三大思想 OOA 面向对象分析 Object Oriented Analysis OOD 面向对象设计 Object Oriented De
  • 剑指 Offer 15. 二进制中1的个数(java+python)

    编写一个函数 输入是一个无符号整数 以二进制串的形式 返回其二进制表达式中数字位数为 1 的个数 也被称为 汉明重量 提示 请注意 在某些语言 如 Java 中 没有无符号整数类型 在这种情况下 输入和输出都将被指定为有符号整数类型 并且不
  • 一万字关于java数据结构堆的讲解,让你从入门到精通

    目录 java类和接口总览 队列 Queue 1 概念 2 队列的使用 以下是一些常用的队列操作 1 入队操作 2 出队操作 3 判断队列是否为空 4 获取队列大小 5 其它 优先级队列 堆 1 优先级队列概念 Java中的Priority
  • uvicorn启动fastapi项目实现热部署

    一 创建在不同的文件中 通过import引入 将app对象定义在一个模块中 如app py 在主模块 如main py 中导入app并运行 app py from fastapi import FastAPI app FastAPI mai
  • 真题详解(关系模型)-软件设计(六十六)

    真题详解 ICMP 软件设计 六十五 https blog csdn net ke1ying article details 130475620 2017年下半年 内存按字节编址 若存储容量为32K 8bit的存储芯片构成地址从A0000H
  • C++基础知识 - 子类的析构函数

    子类的析构函数 注意 为了防止内存泄露 最好是在基类析构函数上添加virtual关键字 使基类析构函数为虚函数 目的在于 当使用delete释放基类指针时 会实现动态的析构 如果基类指针指向的是基类对象 那么只调用基类的析构函数 如果基类指
  • 【DSP】TMS320F28335的ADC模块

    一 功能说明 12位内建采样保持的模数转换器 模拟输入电平 0 3V 16个转换通道 最快转换时钟频率12 5MHz 奈奎斯特定则 25MHz最高能采样12 5MHz的信号 多触发源 软件 ePWM和GPIO 两种采样模式 级联和双通道模式
  • 张大哥笔记-从零开始自己创建一个网站的操作指南

    随着互联网时代的发展 无论是个人还是企业 都想拥有一个自己的网站 通过网站快速展示自己的商品信息 有很多人不了解一个网站是如何形成的 制作一个网站需要多少时间 具体由哪些细节都是全然不知 他们甚至感觉搭建一个网站是一件非常复杂的事情 其实
  • C语言经典100例题(37)--给10个数排序(选择排序和冒泡排序)

    目录 题目 问题分析 选择排序法 冒泡排序法 代码 选择排序法 冒泡排序法 运行结果 题目 给10个数排序 问题分析 选择排序法 从后9个比较过程中 选择一个最小的与第一个元素交换 下次类推 即用第二个元素与后8个进行比较 并进行交换 每一