微型计算机原理选择排序,微机原理编程题 10个数大小排序
时间: 2023-08-01 22:11:08 浏览: 109
好的,我来帮你解决这个问题。
首先,选择排序是一种简单但低效的排序算法,它的基本思路是从数组中选择最小的元素,将其放置在数组的起始位置,然后再从剩余元素中选择最小的元素,放置在已排好序的元素的末尾,以此类推,直到所有元素都排好序为止。
下面是使用C语言实现10个数的选择排序的代码:
```c
#include <stdio.h>
void selectionSort(int arr[], int n);
int main() {
int arr[10] = {32, 12, 45, 67, 23, 9, 16, 78, 54, 21};
printf("Original array: ");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
selectionSort(arr, 10);
printf("\nSorted array: ");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
return 0;
}
void selectionSort(int arr[], int n) {
int i, j, minIndex, tmp;
for (i = 0; i < n - 1; i++) {
minIndex = i;
for (j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
tmp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = tmp;
}
}
}
```
代码的实现很简单,我们首先定义了一个 `selectionSort` 函数,这个函数接收一个整型数组和数组的长度作为参数,然后进行选择排序操作。选择排序的过程中,我们使用两层循环遍历数组,外层循环从 0 开始,每次循环选出一个最小值,内层循环从外层循环的下一个位置开始,每次循环比较当前值和已选出的最小值的大小,如果当前值更小,则更新最小值的下标。内层循环结束后,我们将最小值和外层循环的位置进行交换,然后继续进行下一轮循环,直到数组排好序为止。
在主函数中,我们定义了一个包含10个元素的数组,并初始化了数组的值。然后,我们输出原始数组,调用 `selectionSort` 函数进行排序,最后输出排好序的数组。
阅读全文