在C语言中,排序算法是用于将一系列元素按照特定的顺序进行排列的方法,升序和降序是两种常见的排序方式。
升序是指按照从小到大的顺序排列元素,即元素的值逐渐增大,给定一个整数数组 {5, 2, 8, 1, 9},经过升序排序后,该数组将变为 {1, 2, 5, 8, 9}。
降序是指按照从大到小的顺序排列元素,即元素的值逐渐减小,给定一个整数数组 {5, 2, 8, 1, 9},经过降序排序后,该数组将变为 {9, 8, 5, 2, 1}。
下面是一个简单的C语言程序,演示了如何使用冒泡排序算法对整数数组进行升序和降序排序:
#include <stdio.h> void bubbleSortAscending(int arr[], int n) { int i, j, temp; for (i = 0; i < n1; i++) { for (j = 0; j < ni1; j++) { if (arr[j] > arr[j+1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } void bubbleSortDescending(int arr[], int n) { int i, j, temp; for (i = 0; i < n1; i++) { for (j = 0; j < ni1; j++) { if (arr[j] < arr[j+1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } int main() { int arr[] = {5, 2, 8, 1, 9}; int n = sizeof(arr)/sizeof(arr[0]); printf("原始数组:"); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } bubbleSortAscending(arr, n); printf(" 升序排序后的数组:"); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } bubbleSortDescending(arr, n); printf(" 降序排序后的数组:"); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } return 0; }
上述代码中,bubbleSortAscending
函数实现了升序排序,bubbleSortDescending
函数实现了降序排序,它们都使用了冒泡排序算法,通过比较相邻元素的大小并交换位置来实现排序。
在main
函数中,首先定义了一个整数数组arr
,并计算数组的长度n
,依次调用bubbleSortAscending
和bubbleSortDescending
函数对数组进行升序和降序排序,使用循环打印排序后的数组。
运行上述代码,输出结果如下:
原始数组:5 2 8 1 9 升序排序后的数组:1 2 5 8 9 降序排序后的数组:9 8 5 2 1
可以看到,原始数组经过升序排序后变为{1, 2, 5, 8, 9},经过降序排序后变为{9, 8, 5, 2, 1}。
原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/392458.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复