基于c语言的插入排序优化问题,统计该排序算法所进行的数组元素间比较次数,复制次数,并利用参数(不使用全局变量)“返回”统计结果。同时,用不同规模(如:从1024开始逐次倍增至65536),多种构型测试数据进行算法测试,然后分析算法测试结果,包括算法的时间复杂度,空间复杂度,排序算法的稳定性,及对数据构型的“适用性”
1条回答 默认 最新
- 天际的海浪 2022-06-30 17:23关注
获得5.00元问题酬金 你题目的解答代码如下:
#include<stdio.h> void insertsort(int a[], int n, int *c1, int *c2) { int i, j, temp; *c1=0; *c2=0; for(i=1;i<n;i++) { (*c1)++; if(a[i]<a[i-1])//如果后面出现比前面小的数字 { temp=a[i]; for(j=i-1;temp<a[j]&&j>=0;j--)//把前面的数字移动,挪出一个合适的位置给a[i] { (*c2)++; a[j+1]=a[j]; } a[j+1]=temp; } } } int main(void) { int i,c1,c2; int a[10]={1,2,0,3,4,5,6,7,9,8}; printf("排序前:"); for(i=0;i<10;i++) { printf("%d ",a[i]); } printf("\n\n\n"); insertsort(a, 10, &c1,&c2); printf("排序后:"); for(i=0;i<10;i++) { printf("%d ",a[i]); } printf("\n\n\n"); printf("总计数据比较%d次\n\n", c1); printf("总计数据交换%d次\n\n", c2); return 0; }
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥20 腾讯企业邮箱邮件可以恢复么
- ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
- ¥15 错误 LNK2001 无法解析的外部符号
- ¥50 安装pyaudiokits失败
- ¥15 计组这些题应该咋做呀
- ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
- ¥15 让node服务器有自动加载文件的功能
- ¥15 jmeter脚本回放有的是对的有的是错的
- ¥15 r语言蛋白组学相关问题
- ¥15 Python时间序列如何拟合疏系数模型