C语言选择排序算法:输出第K轮排序结果

本篇博客将介绍如何使用C语言实现选择排序算法,并重点讲解如何输出指定轮次(第K轮)排序后的数组状态。

选择排序算法简介

选择排序是一种简单直观的排序算法。其基本思想是:

  1. 首先,在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。2. 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。3. 重复第二步,直到所有元素均排序完毕。

C语言代码实现

以下是使用C语言编写的选择排序算法代码,并可以输出第K轮排序后的数组状态:c#include <stdio.h>

void selectionSort(int arr[], int n, int k) { for (int i = 0; i < k; i++) { int minIndex = i; // 找到未排序部分的最小元素的下标 for (int j = i + 1; j < n; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } // 将最小元素与未排序部分的第一个元素交换位置 int temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; }}

int main() { int n, k; scanf('%d %d', &n, &k); int arr[n]; for (int i = 0; i < n; i++) { scanf('%d', &arr[i]); } selectionSort(arr, n, k); for (int i = 0; i < n; i++) { printf('%d', arr[i]); if (i != n - 1) { printf(' '); } } printf(' '); return 0;}

代码解释

  • selectionSort(int arr[], int n, int k) 函数: - 接收待排序数组 arr[]、数组长度 n 和目标轮次 k 作为参数。 - 外层 for 循环控制排序轮次,执行 k 次。 - 内层 for 循环寻找未排序部分的最小元素,并记录其下标 minIndex。 - 最后,将最小元素与未排序部分的第一个元素进行交换。

  • main() 函数: - 读取输入的数组长度 n 和目标轮次 k。 - 读取 n 个整数并存储到数组 arr[] 中。 - 调用 selectionSort() 函数进行排序。 - 循环打印排序后的数组,每个元素之间用空格分隔。

输入输出样例

**输入样例:**6 33 5 1 2 8 6

**输出样例:**1 2 3 5 8 6

总结

本篇博客介绍了使用C语言实现选择排序算法,并展示了如何输出指定轮次排序后的数组状态。选择排序算法简单易懂,但效率较低,适合于数据量较小的情况。

C语言选择排序算法:输出第K轮排序结果

原文地址: https://www.cveoy.top/t/topic/ikc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录