C语言排序之选择排序

对于我们人眼来说,排序是一件非常简单的事情,但对于计算机就没那么友好了。

下面三个代码分别是我学c初期与现在分别写出的比较大小的方式

1.最好理解的方式,但是最写起来最麻烦!

#include <stdio.h>
int main()
{
	int Max,Min,Mid;
	scanf("%d %d %d",&Max ,&Mid ,&Min);
	if(Max>Mid){
		if(Mid>Min){
			printf("Max=%d\nMid=%d\nMin=%d",Max,Mid,Min);
		} else{
			if(Max>Min){
			printf("Max=%d\nMid=%d\nMin=%d",Max,Min,Mid);
			} else{
				printf("Max=%d\nMid=%d\nMin=%d",Min,Max,Mid);
				}
		}
		} 
	else{
			if(Mid>Min){
				if(Max>Min){
				printf("Max=%d\nMid=%d\nMin=%d",Mid,Max,Min);
			} else{
				printf("Max=%d\nMid=%d\nMin=%d",Mid,Min,Max);
			}
			} else{
				printf("Max=%d\nMid=%d\nMin=%d",Min,Mid,Max);
				}
		} 
	return 0;
}

2. 选择排序:较难理解,可用于任意数字的比较大小,适用范围广!

 

​#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
#include<stdbool.h>
int main()
{
	printf("请输入要比较大小的个数:");
	int n;
	scanf("%d", &n);
	int number[99999];
	for (int i = 1; i <= n; i++)
	{
		scanf("%d", &number[i]);
	}

	for (int i = 1; i <= n; i++) //选择第i个数字同后面的数字进行比较 (外层循环,保证每个数字都同后面的数字比较了)
	{
		for (int j = i; j <= n; j++) //第i个数字开始同后面比较(内层循环,确定该位置数字为其后面数字中最大的那个)
		{
			//int max = number[i];
			if (number[i] < number[j]) //若后面的数字大,则进行与第i个数字交换!
			{
				int t = number[i];
				number[i] = number[j];
				//int max = number[j];
				number[j] = t;
			}
		}
	}
	for (int i = 1; i <= n; i++)  //遍历数组,输出排序后的数组!
	{
		printf("%d ", number[i]);
	}
	return 0;
}
//该为选择排序,选择第一个数字同后面所有数字进行一一比较,若后面数字大,则进行交换位置,最后可以得出第一个数字为最大的一个!
//第二个进行时同理,与第二个后比较,与大的一一交换,最后得出除第一个外最大的数!
​

 

 该办法可以适用于多位数的比较!

(注:本文为原创作品,若无意侵权,请联系我。)

欢迎点赞 👍 关注收藏 ⭐留言 📝  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值