c语言中用指针实现整型数组的选择排序
时间: 2024-12-24 10:41:04 浏览: 7
在 C 语言中,使用指针实现整型数组的选择排序,主要是因为指针可以方便地遍历数组元素并交换它们的位置。选择排序的基本思想是在未排序部分找到最小(或最大)元素,并将其放到已排序部分的末尾。以下是使用指针的一个简单示例:
```c
#include <stdio.h>
// 交换两个整数值,通过指针操作
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 使用指针进行选择排序
void selectionSort(int* arr, int n) {
int i, j, minIndex;
for (i = 0; i < n - 1; i++) { // 遍历所有数组元素
minIndex = i; // 认定当前元素为最小
// 内部循环查找未排序部分的最小元素
for (j = i + 1; j < n; j++) {
if (*(arr + j) < *(arr + minIndex)) {
minIndex = j;
}
}
// 交换找到的最小元素和当前位置的元素
swap(arr + i, arr + minIndex);
}
}
int main() {
int arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Original array:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
selectionSort(arr, n);
printf("\nSorted array using pointers:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在这个例子中,`selectionSort` 函数接受一个整型数组的首地址 `arr` 和其长度 `n`,然后通过指针操作数组元素来进行排序。
阅读全文