天天开心1005 2022-09-05 09:40 采纳率: 100%
浏览 120
已结题

找出a[n]中相差最小的两个元素

问题遇到的现象和发生背景

设计算法找出数组a[n]中相差最小的两个元素,并说明最坏情况下的比较次数,其中n个元素用随机函数生成,范围在1-1000以内。至少设计两种算法解决该问题,并通过对基本语句计数法对两种算法的时间复杂度进行比较

问题相关代码,请勿粘贴截图

辅助资料:
1.//随机函数的使用
#include
using namespace std;.
#include<time.h>
main()
{
int i,j;
srand((int)time(0));//产生随机数种子
for(i=0;i<10;i++)
{
j=rand()%100+1;//生成1-100以内的随机数
cout<<j<<" ";
}
cout<<endl;
}
2.//基本语句的统计方法
void main()
{
int a[10]; //定义一个数组即它的元素为10
int i,j,temp; //定义3个变量
int sum=0; //基本语句计数器
printf("输入10个整数:\n\a");
for(i=0;i<10;i++)
scanf("%d",&a[i]); //依次输入10个整数
for(i=0;i<9;i++) //进行9轮排序
{
for(j=0;j<9-i;j++) //每轮进行9-i次交换{
sum++;开始计数
if(a[j]>a[j+1])//基本语句
{
temp=a[j];
a[j]=a[j+1]; //大的沉底,小的上浮
a[j+1]=temp;
}
}
}
Printf(“%d基本语句的执行次数为:\n”,sum);//输出计数结果
printf("排序结果:");
for(i=0;i<10;i++) //依次输出排序结果
printf("%d\t ",a[i]);
}

我想要达到的结果

有必要的注释,结合给的代码,完成程序

  • 写回答

3条回答 默认 最新

  • m0_71228413 2022-09-05 20:22
    关注

    可以用快速排序和选择排序

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月13日
  • 已采纳回答 9月5日
  • 专家修改了标签 9月5日
  • 创建了问题 9月5日

悬赏问题

  • ¥15 openwrt双栈NAT
  • ¥15 部分网页页面无法显示!
  • ¥15 怎样解决power bi 中设置管理聚合,详细信息表和详细信息列显示灰色,而不能选择相应的内容呢?
  • ¥15 QTOF MSE数据分析
  • ¥15 平板录音机录音问题解决
  • ¥15 请问维特智能的安卓APP在手机上存储传感器数据后,如何找到它的存储路径?
  • ¥15 (SQL语句|查询结果翻了4倍)
  • ¥15 Odoo17操作下面代码的模块时出现没有'读取'来访问
  • ¥50 .net core 并发调用接口问题
  • ¥15 网上各种方法试过了,pip还是无法使用