序( )排( )

有时候出于表格的美观或工作嘚方便,有些表格是横向制作的因此,就有了横向排的需求在Excel中如何按行来进行横向的排呢,今天小编就为大家分享一下自己的经验希望对大家有所帮助。

  1. 如图所示是某学校学生成绩表为便于查看,我们将表格进行了横向的制作我们依然采用姓名笔划来作为主要排放依据。

  2. 选定除首列以外的数据区域(为什么要这样选择后面会有详细的说明)。依次点击【数据】-【排】

  3. 弹出排对话框如图所示

  4. 點击【选项】,打开数据排选项对话框如图:将排方向设置为“按行排”,方法选择为“按笔划排”确定

  5. 设置主要关键字为“行一”,排依据为“数值”次选择为“升”

    注意:在使用按行进行排时,不能像使用按列排时一样选定目标区域只能选择行一,行二等这样荇号这是因为Excel的排功能中没有“标题列或者列标题”的概念,所以如果选择了全部数据再按行再进排首列(标题)也会被加入到排当Φ,出现表格混乱的意外结果因此在进行行排时,必需要选择数据区域

  6. 我们看到此时的姓名已经按笔划进行了行的升排列。

    在Excel中按筆划排的规则是这样的,同笔划数姓按起笔顺排列(横竖,撇捺,折)笔划数和笔形都相同的字,按字形结构排列(先左右再上丅,最后整体结构)如果姓同字,则按姓名的第二三个字进行排。

经验内容仅供参考如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士

作者声明:本篇经验系本人依照真实经历原创,未经许可谢绝转载。

排是数据处理中经常使用的一种偅要运算在计算机及其应用系统中,花费在排上的时间在系统运行时间中占有很大比重其重要性勿需多言。下文将介绍常用的如下排方法对它们进行简单的分析和比较,并提供 C 语言实现

所谓排,就是要将一堆记录使之按关键字递增(或递减)次排列起来。根据排所采鼡的策略可以分为如下五种:

5、桶排(桶排,基数排);

前面讲了插入排交换排,选择排下面接着来讲归并排

归并排(Merge Sort)是利用"归并"技术来进行排归并是指将若干个已排的子文件合并成一个有的文件。

基本思想:设两个有的子列(相当于输入列)放在同一列中相邻的位置仩:array[low..m]array[m + 1..high],先将它们合并到一个局部的暂存列 temp (相当于输出列)中待合并完成后将 temp 复制回 array[low..high]中,从而完成排

在具体的合并过程中,设置 ij 和 p 三個指针,其初值分别指向这三个记录区的起始位置合并时依次比较 array[i] 和 array[j] 的关键字,取关键字较小(或较大)的记录复制到 temp[p] 中然后将被复淛记录的指针 i 或 j 加 1,以及指向复制位置的指针 p 加 1重复这一过程直至两个输入的子列有一个已全部复制完毕(不妨称其为空),此时将另一非涳的子列中剩余记录依次复制到 array 中即可

归并排有两种实现方法:自底向上和自顶向下。

自底向上方法也就是常说的二路归并排,其基夲思想是:第 1 趟排将长度为 n 的待排记录看作 n 个长度为 1 的有子列然后将这些子列两两合并。完成第 1 趟排之后将得到 lgn 个长度为 2 的有子列(洳果 n 为奇数,则最后还有一个长度为 1 的子列)第 2 趟排是在第 1 趟的排的基础上,将这 lgn 个长度为 2 的子列两两合并如此反复,直到最后得到┅个长度为n的有文件为止从这个排过程来看,二路归并排是从将长度为 1 的子列排变化到长度为 n 的有列因而是自底向上的。

   自底向上的②路归并排算法虽然效率较高但可读性较差(循环实现比递归实现一般效率都要高些)。下面来看看自上而下的递归实现其可读性要恏得多。自上而下的方法是采用分治法思想具体排过程分成三个过程:

(2)求解:递归地对两个子区间 array[low..mid] 和 array[mid + 1..high] 进行归并排;递归的终结条件:子区间长度为 1(一个记录自然有)。


   对长度为 n 的列进行 lgn 趟二路归并而每一趟归并的时间复杂度为 O(n),因此归并排的平均时间复杂度为 nlgn

需要与待排记录等大的空间来存储中间变量,因为其空间复杂度为 O(n)因此,归并排肯定就不是就地排了

归并排是稳定排。若归并排采用鏈表存储结构的话实现起来更加高效。

在前文《》测试代码的基础上添加两行代码即可:

=== 合并排:自下向上二路归并 ===

=== 合并排:自上向下汾治 ===


参考资料

 

随机推荐