| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6878 人关注过本帖, 5 人收藏
标题:分享一份归并排序代码,欢迎测试改进
只看楼主 加入收藏
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 10楼 寒风中的细雨
程序代码:
# ./closest_pair 
输入点的数量:4
一行一个点 例如:4,5   其中4为x轴坐标 5为y轴坐标
0.5,1
3,0.5
1,3
2.5,1.5
(3.000000, 0.500000)<->(2.500000, 1.500000) dis[1.118034]
-----------------
网上 找到的一个输入例子
# ./closest_pair 
输入点的数量:40
一行一个点 例如:4,5   其中4为x轴坐标 5为y轴坐标
24.11,33.1
11.33,15.66
24.18,5.42
33.95,43.44
98.19,4.31
17.06,96.67
91.65,43.67
23.62,11.38
51.54,4.45
82.93,55.06
28.46,48.33
93.33,17.01
3.84,47
93.94,21.12
20.07,92.17
7.92,33.13
53.34,18.44
3.92,4.22
14.99,50.57
1.58,31.62
4.13,60.96
55.23,33.77
6.44,5.84
81.8,22.3
80.61,9.14
22.43,94.26
99.5,67.04
46.68,84.16
92.07,54.53
86.19,48.15
53.22,73.18
26.2,41.52
1.4,15.14
20.51,97.44
40.44,84.3
53.73,21.76
71.55,3.4
14.62,50.11
16.45,60.28
16.92,24.16
(14.620000, 50.110000)<->(14.990000, 50.570000) dis[0.590339]
---------------------
2017-04-23 23:49
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 11楼 寒风中的细雨
感觉这条题目就是~~~

https://bbs.bccn.net/thread-473320-1-1.html

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-24 05:33
sunb3
Rank: 2
来 自:北京
等 级:论坛游民
威 望:3
帖 子:34
专家分:94
注 册:2017-4-20
收藏
得分:0 
不好意思,请问这句:
typedef int (*merge_set_fun)(unsigned int len, void *disoder_ary, void **merge_ary);

表示什么意思?
是把int定义成为了(*merge_set_fun)(unsigned int len, void *disoder_ary, void **merge_ary)么?也就是说:
int i;

就等价于
(*merge_set_fun)(unsigned int len, void *disoder_ary, void **merge_ary) i;

是这样么?


另外,void不是空么?也就是说*disoder_ary相当于是空值?

这两处实在看不懂,烦请指点一二……

除了基础……我什么都不会……
2017-04-24 08:22
marlow
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:125
专家分:419
注 册:2016-7-18
收藏
得分:0 
回复 10楼 寒风中的细雨
这次仔细阅读了你的代码。感觉写得非常规范,简直是我们这些业余自学编程的人模范,本人非常喜欢这种风格!
PS:这小段代码起什么作用?
    #ifdef     __cplusplus
    extern "C"{
    #endif

一切都在学习、尝试、摸索中
2017-04-24 09:27
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 13楼 sunb3
那是给函数指针定义一个别名。

typedef int (*merge_set_fun)(unsigned int len, void *disoder_ary, void **merge_ary);

不考虑typedef,这条语句的意思是 merge_set_fun是指针,指向返回值为int,参数为(unsigned int len, void *disoder_ary, void **merge_ary)的函数。

考虑typedef,merge_set_fun就是这个函数指针的别名。


[此贴子已经被作者于2017-4-24 13:23编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-04-24 13:10
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 14楼 marlow
__cplusplus是C++的中的一个宏。

extern "C"
这是C++的语法,是为了让告诉C++编译器,以下代码按照C语言编译。


[此贴子已经被作者于2017-4-24 13:18编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-04-24 13:13
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 14楼 marlow
网上 搜索下 doxygen  

将代码注释 直接生成 API 文档
2017-04-25 00:03
sunb3
Rank: 2
来 自:北京
等 级:论坛游民
威 望:3
帖 子:34
专家分:94
注 册:2017-4-20
收藏
得分:0 
以下是引用renkejun1942在2017-4-24 13:10:03的发言:

那是给函数指针定义一个别名。

typedef int (*merge_set_fun)(unsigned int len, void *disoder_ary, void **merge_ary);
不考虑typedef,这条语句的意思是 merge_set_fun是指针,指向返回值为int,参数为(unsigned int len, void *disoder_ary, void **merge_ary)的函数。

考虑typedef,merge_set_fun就是这个函数指针的别名。


额……这是为了方便阅读才设置的么?另外参数void不是空么?也就是说disoder_ary和merge_ary是空值?

除了基础……我什么都不会……
2017-04-25 07:45
beichei5d
Rank: 4
等 级:业余侠客
威 望:2
帖 子:89
专家分:270
注 册:2016-3-8
收藏
得分:0 
看晕了。。4月10日代码贴进来报了一个错误 (vc++6.0):F:\vc\lx\k-4\digui_wangluo.cpp(93) : fatal error C1083: Cannot open include file: 'merge_sort.h': No such file or directory

你现在所偷的懒,都将成为以后扇你的巴掌!共勉吧。。。
2017-04-25 08:53
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 18楼 sunb3
void有好几个意思。

1.表示没有返回值
2.表示没有参数
3.void指针

上面的代码中就是void指针,void指针是一种“万能指针”,任何指针都可以无损转换为void指针,而void指针同样可以无损转换为别的指针。当时有一个缺陷,不能对void指针进行解引用操作。

[此贴子已经被作者于2017-4-25 10:46编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-04-25 10:45
快速回复:分享一份归并排序代码,欢迎测试改进
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017188 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved