C语言编写一段代码:下面是选择排序的程序,其中 datalist 是数据表,它有两个数据成员:一是元素类型为Element 的数组 V,另一个是数组大小 n。算法中用到两个操作,一是取某数组元素 V[i] 的关键码操作 getKey ( ) ,一是交换两数组元素内容的操作 Swap( ):
时间: 2024-02-03 22:12:37 浏览: 196
在ASP.NET 2.0中操作数据之四十二:DataList和Repeater数据排序(一)
以下是 C 语言编写的选择排序代码:
```c
#include <stdio.h>
typedef int Element;
// 获取元素的关键码
int getKey(Element e) {
return e;
}
// 交换两个元素的值
void swap(Element *a, Element *b) {
Element temp = *a;
*a = *b;
*b = temp;
}
// 选择排序
void selectionSort(Element V[], int n) {
int i, j, min_idx;
for (i = 0; i < n-1; i++) {
min_idx = i;
for (j = i+1; j < n; j++) {
if (getKey(V[j]) < getKey(V[min_idx])) {
min_idx = j;
}
}
swap(&V[i], &V[min_idx]);
}
}
int main() {
Element datalist[] = {5, 3, 7, 1, 9, 4, 6, 2, 8};
int n = sizeof(datalist) / sizeof(Element);
printf("Before sorting: ");
for (int i = 0; i < n; i++) {
printf("%d ", datalist[i]);
}
selectionSort(datalist, n);
printf("\nAfter sorting: ");
for (int i = 0; i < n; i++) {
printf("%d ", datalist[i]);
}
printf("\n");
return 0;
}
```
其中,`getKey()` 函数返回元素本身作为关键码,`swap()` 函数使用指针交换两个元素的值,`selectionSort()` 函数使用选择排序算法对数据进行排序。在 `main()` 函数中,我们定义了一个 `datalist` 数组,并使用 `selectionSort()` 函数对其进行排序。
阅读全文