一、什么是 “打印排序”
“打印排序” 并非专业算法术语,而是日常开发中 “对数据完成排序后,将排序结果输出(打印)到控制台 / 终端” 的通俗说法,核心包含两个步骤:
-
对目标数据(数组、列表等)执行排序逻辑(升序 / 降序、自定义规则
-
通过编程语言的输出语法,将排序后的结果可视化展示。
二、打印排序的核心要素
- 排序对象
常见为结构化数据:
• 基础类型:整数、浮点数、字符串(按字母 / 长度排序);
• 复杂类型:对象、结构体(按指定字段排序,如按学生成绩、商品价格)。
- 排序规则
• 默认规则:多数编程语言内置排序函数默认升序(数字从小到大、字符串按 ASCII / 字母序);
• 自定义规则:可指定降序、按字段 / 长度 / 自定义逻辑排序。
示例
1.打印输出排序
通过比较相邻元素的大小
#include <stdio.h>
int main() {
int arr[] = {5, 3, 2, 6, 4};
int n = sizeof(arr) / sizeof(arr[0]);
int i, j, temp;
printf("排序前的数组:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
printf("排序后的数组:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
把最大的值放在数组的最后面
比较大小
结果如下
输入5个数字
#include <stdio.h>
int main() {
int arr[5];
int n = 5;
int i, j, temp;
printf("请输入5个数字:");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("排序前的数组:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp
= arr[j];
arr
[j] = arr[j + 1];
arr
[j + 1] = temp;
}
}
}
printf("排序后的数组:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
结果