编写程序,用指针实现整型数组 oum/10)=(32, 12, 8, 45, 7, 18, 21, 47, 19, 68)的选择法
时间: 2024-11-26 10:07:10 浏览: 21
在C语言中,你可以使用指针和循环结构来实现选择排序算法对整数数组的排序。选择法的基本思想是每次从未排序的部分找到最小(或最大)元素,然后将其放到已排序部分的末尾。这里是一个简单的指针实现选择排序的例子:
```c
#include <stdio.h>
void selectionSort(int* arr, int n) {
int i, j, minIndex, temp;
// 遍历整个数组
for (i = 0; i < n - 1; i++) {
// 假设第一个元素是最小的
minIndex = i;
// 从剩余未排序的元素中找到最小值
for (j = i + 1; j < n; j++) {
if (*(arr + j) < *(arr + minIndex)) { // 比较指针对应的值
minIndex = j; // 更新最小索引
}
}
// 将找到的最小元素与当前位置交换
temp = *(arr + i);
*(arr + i) = *(arr + minIndex);
*(arr + minIndex) = temp;
}
}
int main() {
int arr[] = {32, 12, 8, 45, 7, 18, 21, 47, 19, 68};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Before sorting: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
selectionSort(arr, n);
printf("\nAfter sorting: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在这个程序中,`selectionSort`函数通过两个嵌套循环实现选择排序,外部循环用于遍历数组,内部循环用于查找当前未排序部分的最小值,并在每个步骤完成后更新数组。
阅读全文