IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言整数排序方法: 冒泡排序法、qsort函数、中间变量 -> 正文阅读

[C++知识库]C语言整数排序方法: 冒泡排序法、qsort函数、中间变量

每日一题

题目:给出三个整数 a,b,c,要求把这三位整数从小到大排序。
算法思想:

1. 思路一:如果小白做题可以简单地让三个数两两比 较,scanfprintf即可
2. 思路二:可以使用 if 语句进行条件判断,如果 a 大于 b,则借助于中间变量 t 互换 a 与 b 值, 依此类推比较 a 与 c、b 与 c,最终结果即为 a、b、c 的升序排列。
3. 思路三(冒泡排序法)从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。本题从小到大排序,如果n个数,第一轮比较后,所有数中最大的那个数就会浮到最右边;第二轮比较后,所有数中第二大的那个数就会浮到倒数第二个位置……就这样一轮一轮地比较,最后实现从小到大排序。
4.思路四:使用C语言中qsort函数来进行排序。
一、程序代码:(思路一)

#include<stdio.h>

int main() {
	int a, b, c;
	scanf("%d %d %d", &a, &b, &c);
	if(a < b && a < c) {
		printf("%d ", a);
		if(b < c) {
			printf("%d %d", b, c);
		} else {
			printf("%d %d", c, b);
		}
	} else if(b < c) {
		printf("%d ", b);
		if(a < c) {
			printf("%d %d", a, c);
		} else {
			printf("%d %d", c, a);
		}
	} else {
		if(a < b) {
			printf("%d %d %d", c, a, b);
		} else {
			printf("%d %d %d", c, b, a);
		}

	}
	return 0;
}

运行结果:

2 5 3
2 3 5

二、程序代码:(思路二)

#include <stdio.h>

int main() {
	int a, b, c, t;
	scanf("%d %d %d",&a, &b, &c);
	if(a>b) {  //如果a大于b,借助中间变量t实现a与b值的互换
		t = a;
		a = b;
		b = t;
	}
	if(a>c) { 
		t = a;
		a = c;
		c = t;
	}
	if(b>c) { 
		t = b;
		b = c;
		c = t;
	}
	printf("%d %d %d",a, b, c);
	return 0;
}

运行结果:

9 8 20
8 9 20

三、程序代码:(思路三)

#include<stdio.h>

int main() {
	int t, m[4], i, j;
	scanf("%d %d %d",&m[1],&m[2],&m[3]);
	for(j = 1; j <= 2; j++) {
		for(i = 2; i <= 3; i++) {
			if(m[j]>m[i]) {
				t = m[i];
				m[i] = m[j];
				m[j] = t;
			} 
		}
	}
	printf("%d %d %d", m[1],m[2],m[3]);
	return 0;
}

运行结果:

3 5 4
3 4 5

四、程序代码:(思路四)

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

int comp(const void*a,const void*b)//用来做比较的函数。
{
    return *(int*)a-*(int*)b;
}
int main(){
	int a[3];
	scanf("%d %d %d", &a[0], &a[1], &a[2]);
	qsort(a, 3, sizeof(int), comp);
	printf("%d %d %d",a[0],a[1],a[2]);
	return 0;
}

运行结果:

2 5 4
2 4 5

注:
qsort()函数用法为,qsort(数组名,元素个数,元素占用的空间(sizeof),比较函数),头文件为

#include<stdlib.h>

总结
个人认为,以上方法 ,冒泡排序为最佳选择,建议请指出哦

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:03:37  更:2021-08-09 10:04:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/9 17:00:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码