完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
一.解题思路
排序求解,将数组中的元素进行排序,求解两个数之间的差值记录更新。 暴力求解 ,第一个元素和其他n-1个元素相比较,记录差值随时更新。第二个元素与其余n-2个算法比较,记录差值更新…显然最容易想到但是时间复杂度很高。 二.代码 1.伪代码 选择性能较好的快速排序作为排序方法。 quicksort(*a,left,right){ i=left j=right // 两个工作指针 if(i while(i != j){ //直至左右两个指针遇到 这一趟排序结束 while(a[j]>=pivotkey) j-- //先从右边向左找 直至找到一个比它小的数a while(a<=pivotkey) i++ //再从左边向右找 直到找到一个比它大的a[j] exchange a <--> a[j] } exchange a[left] <--> a } quicksort(*a,left,i-1) quicksort(*a,i+1,right) //递归调用quicksort 将当前区间以枢轴为界 一分为二 } different(){ for(i=2;i<=n;i++) { //从数组第二个数开始n-1次遍历 elem=a-a[i-1] //不断获得新的差值 dvalue=elem //不断获得更小的差值 用dvalue储存 } } ———————————————— 版权声明:本文为CSDN博主「Johnny_yuanchao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_42535117/article/details/88085668 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 C++代码 void quicksort(int *a,int left, int right) { int i, j, t, pivotkey; if (left > right) { return; } pivotkey = a[left];//每次将 区间 最左边的数字 作为比较的关键字pivotkey i = left; j = right; while (i != j) { while (a[j] >= pivotkey && i < j) { //先从右边找 j--; } while (a <= pivotkey && i < j) { i++; } //与之前数据结构课本上的算法有一点区别是 找到左右两边不合法的数据 直接交换 这样不容易出错 也更容易理解 if (i < j) { t = a; a = a[j]; a[j] = t; } } a[left] = a; a = pivotkey; //以上两句就是将 最左边的数与当前枢轴位置上的数交换 当前a位置上的数字是一定符合小于枢轴的 这是因为每次都从右边往左找的原因 //递归调用 quicksort(a,left, i - 1); quicksort(a,i + 1, right); } void differentvalue(int *a,int n) { int dvalue = 100001; for (int i = 2; i <= n; i++) { int elem = a - a[i - 1];//cout << elem << endl; if (elem < dvalue) { dvalue = elem;//更新最小差 different value } } cout << "最小值是 :" << dvalue << endl; } int main() { int i, j, t; int a[101], n; cin >> n; for (int i = 1; i <= n; i++) { cin >> a; } quicksort(a,1, n); differentvalue(a,n); system("pause"); return 0; } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1752 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1611 浏览 1 评论
1052 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
721 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1666 浏览 2 评论
1924浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
711浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
560浏览 3评论
583浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
544浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 12:16 , Processed in 0.783791 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号