"海潮音"排序算法:分析与针对性提升

xiaoxiao2021-02-28  95

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自身带的分析功能进行对比,看这个针对性改进是否有效?如下图: 未改进的分析报告: 已改进的分析报告: 
转载请注明原文地址: https://www.6miu.com/read-67331.html

最新回复(0)