void InsertSort(RecType R[],int n) { int i,j; RecType tmp; for(i=1;i<n;i++) { if(R[i].key<R[i-1].key) { tmp=R[i]; j=i-1; do { R[j+1]=R[j]; j--; } while(j>=0 && R[j].key>tmp.key); R[j+1]=tmp; } } } 在主函数中如何调用
时间: 2024-03-23 17:38:16 浏览: 91
插入排序:主函数中先定义了一个待排序的数组 arr,然后调用 insertionSort 函数进行排序,并打印出排序后的结果
在主函数中,您需要先创建一个 `RecType` 类型的数组,然后将需要排序的数据存储在数组中。然后,您可以调用 `InsertSort` 函数对数组进行排序。示例代码如下:
```
#include <stdio.h>
typedef struct {
int key;
// 其他数据字段
} RecType;
// 插入排序函数
void InsertSort(RecType R[], int n) {
int i, j;
RecType tmp;
for (i = 1; i < n; i++) {
if (R[i].key < R[i - 1].key) {
tmp = R[i];
j = i - 1;
do {
R[j + 1] = R[j];
j--;
} while (j >= 0 && R[j].key > tmp.key);
R[j + 1] = tmp;
}
}
}
int main() {
// 创建一个 RecType 类型的数组并存储数据
RecType arr[] = {{5}, {3}, {8}, {1}, {6}};
int n = sizeof(arr) / sizeof(RecType);
// 调用 InsertSort 函数进行排序
InsertSort(arr, n);
// 输出排序后的结果
for (int i = 0; i < n; i++) {
printf("%d ", arr[i].key);
}
printf("\n");
return 0;
}
```
在上述示例代码中,我们首先创建了一个 `RecType` 类型的数组 `arr`,并存储了需要排序的数据。然后,我们调用 `InsertSort` 函数对数组进行排序。最后,我们输出排序后的结果。
阅读全文