1.根据数据元素的总长度 len,创建线性表,对数据进行排序,并存在数组中 2.直接插入排序算法,设置监视哨,存放待插入数据,通过与已排好序的元素 比较,插入到正确的位置 3.冒泡排序算法,通过对相邻的数据元素进行交换,逐步将待排序序列变成有 序的 4.用 main 函数,输入一列无序数,通过直接插入排序算法和冒泡排序算法,输出排序结果
时间: 2024-02-21 20:01:51 浏览: 67
下面是一个C语言程序,根据输入的数据元素进行直接插入排序和冒泡排序,并输出排序结果:
```c
#include <stdio.h>
// 直接插入排序
void insert_sort(int arr[], int len) {
int i, j, tmp;
for(i = 1; i < len; i++) {
tmp = arr[i];
j = i - 1;
while(j >= 0 && arr[j] > tmp) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = tmp;
}
}
// 冒泡排序
void bubble_sort(int arr[], int len) {
int i, j, tmp;
for(i = 0; i < len - 1; i++) {
for(j = 0; j < len - 1 - i; j++) {
if(arr[j] > arr[j + 1]) {
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
int main() {
int arr[100], len, i;
printf("请输入数据元素个数:");
scanf("%d", &len);
printf("请输入数据元素:");
for(i = 0; i < len; i++) {
scanf("%d", &arr[i]);
}
printf("\n排序前的数组:\n");
for(i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
// 直接插入排序
insert_sort(arr, len);
printf("\n\n直接插入排序后的数组:\n");
for(i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
// 冒泡排序
bubble_sort(arr, len);
printf("\n\n冒泡排序后的数组:\n");
for(i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
程序首先从用户输入中读取数据元素的个数和数据元素本身,然后对输入的数据进行直接插入排序和冒泡排序,并输出排序结果。
阅读全文