C++ 打印排序

86 阅读2分钟

一、什么是 “打印排序”

“打印排序” 并非专业算法术语,而是日常开发中 “对数据完成排序后,将排序结果输出(打印)到控制台 / 终端” 的通俗说法,核心包含两个步骤:

  1. 对目标数据(数组、列表等)执行排序逻辑(升序 / 降序、自定义规则

  2. 通过编程语言的输出语法,将排序后的结果可视化展示。

二、打印排序的核心要素

  1. 排序对象

常见为结构化数据:

• 基础类型:整数、浮点数、字符串(按字母 / 长度排序);

• 复杂类型:对象、结构体(按指定字段排序,如按学生成绩、商品价格)。

  1. 排序规则

• 默认规则:多数编程语言内置排序函数默认升序(数字从小到大、字符串按 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;
}

把最大的值放在数组的最后面

比较大小

结果如下

image.png

输入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;
}

结果

image.png