template <class 形参>
void 海潮音(形参 数组[], int 量)
{
int 标 = 0, 头 = 0, 尾 = 量;
形参 转存 = 0;
do
{
标 = 头;
while (头 < 尾)
{
if (数组[标] > 数组[--尾]) 标 = 尾;/*获得最小下标2017.6.6 17:17*/
else if (头 > 0 && 数组[头 - 1] == 数组[尾])
{/*如果与之前已经排好序的数据一样的针对性处理,从而减少循环比较,达到提高性能。因为要排序的不总是无重复的数据*/
标 = 尾;
break;
}
}
if (标 != 头)
{
转存 = 数组[头];
数组[头] = 数组[标];
数组[标] = 转存;
}
尾 = 量;
} while (++头 < 量);
};
排序的分析:
1.从数据:无重复,有重复
2.从顺序:无序,升序,降序
3.从组合:无序无重复,无序有重复;升序无重复,升序有重复;降序无重复,降序有重复.
从以上分析可见有重复占半壁江山,对此,我的排序算法将针对有重复数据进行如下针对性改进,从而大幅提高排序性能.
(这个编辑功能怎么变成这样了?后面加入的内容或图片老是跑到最上面,以前不是这样的,现在是怎么改的,不能按意图写在该有的位置,真是吃饱了撑的.)
用VS自身带的分析功能进行对比,看这个针对性改进是否有效?如下图:
未改进的分析报告:
已改进的分析报告: