简单选择排序结构体版
时间: 2024-10-09 19:04:53 浏览: 26
总结.docx 冒泡排序 选择排序 插入排序 归并排序 快速排序 结构体排序(冒泡排序+结构体的应用) 桶排序 二分查找 DFS
简单选择排序是一种基础的排序算法,它的工作原理是每次从未排序的部分找出最小(或最大)的一个元素,然后放到已排序部分的末尾。在结构体版本中,我们通常会创建一个包含待排序数组和一些辅助函数的结构体。以下是一个简单的C语言例子:
```c
#include <stdio.h>
// 定义结构体,包含数组和其长度
typedef struct {
int* arr; // 整型数组指针
int size; // 数组大小
} SelectionSort;
// 选择排序函数
void selection_sort(SelectionSort* ss) {
for (int i = 0; i < ss->size - 1; i++) {
int min_idx = i;
for (int j = i + 1; j < ss->size; j++) {
if (ss->arr[j] < ss->arr[min_idx]) {
min_idx = j;
}
}
// 将找到的最小值与当前位置交换
int temp = ss->arr[i];
ss->arr[i] = ss->arr[min_idx];
ss->arr[min_idx] = temp;
}
}
// 主函数演示如何使用
int main() {
int array[] = {5, 3, 8, 4, 2};
SelectionSort sort = {array, sizeof(array) / sizeof(array[0])};
selection_sort(&sort);
printf("Sorted array: ");
for (int i = 0; i < sort.size; i++) {
printf("%d ", sort.arr[i]);
}
return 0;
}
```
在这个结构体版本中,`selection_sort`函数接收一个`SelectionSort`类型的指针作为参数,可以直接操作这个结构体内的数组。
阅读全文