即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

“海潮音”排序算法:解析与针对性提升

编程语言 xianfajushi 17℃ 0评论
template 
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自身带的分析功能进行对比,看这个针对性改进是否有效?如下图:
未改进的分析报告:
已改进的分析报告:



转载请注明:CodingBlog » “海潮音”排序算法:解析与针对性提升

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情