首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个数组排序的函数 请教哪种方法更符合使用习惯

2012-09-08 
一个数组排序的函数 请问哪种方法更符合使用习惯最近打算实现一个对数组进行局部排序(即只排序其中一部分)

一个数组排序的函数 请问哪种方法更符合使用习惯
最近打算实现一个对数组进行局部排序(即只排序其中一部分)的函数 

但在接口设计上存在诸多选项 不知道哪个更符合使用习惯

经验人士请看:

// 看似是国际惯例
// 只排序从InBegin 到 InEnd之前的元素(注:第InEnd号元素不在排序范围内)
1) void SortIntRange(int InArray[], int InBegin, int InEnd); 


// 排序从InFirst到InLast号的元素(注:第InLast号元素在排序范围内)
2)void SortIntRange(int InArray[], int InFirst, int InLast);


这两个接口的区别在于最后一个参数的使用上

之前看过的不少程序都习惯用1) 我不明白为什么会这么流行 但我个人感觉不够直观

我个人更倾向实现2)但是不知道符不符合常规

请资深人士帮忙鉴定下 谢谢

[解决办法]
我是菜鸟。。。习惯1 帮顶。。打酱油。。
[解决办法]
显然是Begin和End更为直观!
[解决办法]
只排序从InBegin 到 InEnd之前的元素
1) void SortIntRange(int InArray[], int InBegin, int InEnd);
可以只对前面的排序,当数量很大的时候,就减少对后面数据的排序了,也能满足所有都排序
而第二种只能从头到尾排序
[解决办法]
void SortIntRange(int * begin, int * end);

[解决办法]
看看STL中 begin-end 与 front-back的区别,再看看他们的作用
[解决办法]
http://blog.csdn.net/wonderful_ha/article/details/6834226
[解决办法]
因为这样做可以避免一种意外情况,就是不小心把数组的元素数当作Last的号传了进去。
因为C语言的数组是从0开始计数的,所以后一种情况如果忘记检查就有可能出现违规访问。前一种稍微安全一点。
[解决办法]
http://blog.csdn.net/wonderful_ha/article/details/6834226

热点排行