马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。
#include <stdio.h>
#include <stdlib.h>
void insertion_sort(int *arr, int n)
{
for (int i = 1; i < n; i++)
{
int key = arr;
int j = i - 1;
while (j >= 0 && key < arr[j])
{
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
void print_arry(int *arr,int n)
{
for (int i = 0; i < n; i++)
{
printf("%d ", arr);
}
}
int main()
{
int n;
scanf_s("%d", &n);
int *arr = (int *)malloc(sizeof(int) * n);
if (arr == NULL)
{
return 1;
}
else
{
for (int i=0; i < n; i++)
{
scanf_s("%d", arr + i);
}
insertion_sort(arr, n);
print_arry(arr, n);
}
free(arr);
return 0;
}
使用了malloc函数动态开辟内存空间,末了记得要释放。
自定义了两个函数模块,一个是插入排序函数,一个是打印函数
结果
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |