三个整数排序方法(C语言)

本文介绍了一种简单的三数排序算法实现,通过比较和交换三个输入整数,确保它们按升序排列。代码使用C语言编写,展示了基本的条件判断和变量交换技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在看算法竞赛导论,发现居然还有这种解决问题的方法。

不多说 直接上代码

#include<Stdio.h>

int main(){
	int a,b,c,t;
	scanf("%d %d %d", &a, &b, &c);
	
	if(a > c){t = a; a = c; c = t;}  //执行之后 a<=c 
	if(a > b){t = a; a = b; b = t;}  //执行之后 a<=b 
	if(b > c){t = b; b = c; c = t;}
	
	printf("%d %d %d", a, b, c);
	
	return 0;
} 

 

在C语言中,对三个整数排序可以使用不同的算法实现,比如选择排序、冒泡排序或直接插入排序。这里以最常见的快速排序为例,它是一种高效的排序算法,步骤如下: 1. **选取基准** (pivot):通常选择第一个元素作为基准。 2. **分区操作** (partitioning):将数组分为两部分,一部分所有元素都小于基准,另一部分所有元素大于或等于基准。 3. **递归** (recursion):对两部分分别进行相同的排序过程,直到每个部分只剩下一个元素或为空。 以下是简单的快速排序函数示例,用于对三个整数`a`, `b`, 和`c`进行排序: ```c #include <stdio.h> void swap(int* a, int* b) { int temp = *a; *a = *b; *b = temp; } int partition(int arr[], int low, int high) { int pivot = arr[low]; while (low < high) { while (low < high && arr[high] >= pivot) high--; arr[low] = arr[high]; while (low < high && arr[low] <= pivot) low++; arr[high] = arr[low]; } arr[low] = pivot; return low; } void quicksort(int arr[], int low, int high) { if (low < high) { int pi = partition(arr, low, high); quicksort(arr, low, pi - 1); quicksort(arr, pi + 1, high); } } // 主函数来演示排序 int main() { int a, b, c; // 输入三个整数 scanf("%d %d %d", &a, &b, &c); int arr[] = {a, b, c}; int n = sizeof(arr) / sizeof(arr[0]); quicksort(arr, 0, n - 1); printf("Sorted array: "); for (int i = 0; i < n; i++) printf("%d ", arr[i]); printf("\n"); return 0; } ``` 运行此程序后,它会将输入的三个整数按升序排列。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值