美文网首页
字符串排序

字符串排序

作者: zekoliu | 来源:发表于2018-06-22 22:35 被阅读0次

    对于许多排序应用,决定顺序的键都是字符串。这里将分享两类完全不同的字符串排序方法,三种不同的字符串排序算法。

    第一类是低位优先(LSD)的字符串排序,这个算法是从右到左检查键中的字符,要求字符串大小相同且必须走完全部字符,才能完成排序。

第二类是高位优先(MSD)的字符串排序,和低位相反,高位是从左到右检查键中的字符,不要求字符串大小相同,也不一定要走完所有字符才完成排序。

    在学习这两种排序算法之前,应该先了解一下键索引计数法,这种方法本身就很实用,同时也是本节将要学习的两三中字符串排序算法的基础。键索引计数法在排序归类比较实用,比如将学生按小组排序,下面是键索引计数法的步骤:

    1 频率统计,计数每个键出现的频率

    2, 将频率转化为索引

    3,将数据分类

    4,回写

按照步骤,给出下面的代码:

输出:

    接下来,学习低位优先(LSD)字符串排序算法,下面是代码:

输出:

排序轨迹:

高位优先(MSD)字符串排序算法:

先来看高位优先的字符串排序的示意图:

根据示意图和算法思想,给出如下代码:

输出:

排序轨迹:

三向字符串快速排序

三向字符串快速排序根据高位优先的字符串排序算法改进快速排序,根据键的首字母进行三向切分,仅在中间子数组中的下一个子继续递归排序,示意图如下:

代码如下所示:

输出:

排序轨迹:

相关文章

  • js算法

    排序算法 冒泡排序 快速排序 字符串操作 判断回文字符串 翻转字符串 反向遍历字符串 function reve...

  • JS排序

    1、数字排序 2、字符串排序 3、中文排序 4、中英文数字字符串排序

  • nodejs实现字符串排序(高位优先&低位优先)

    字符串排序 网上很多都是c实现的,这里我写一个nodejs实现的 低位优先字符串排序 高位优先字符串排序

  • 常见算法的js实现

    排序算法 1、冒泡排序 2、快速排序 3、二路归并 字符串操作 1、判断回文字符串 2、翻转字符串 思路一:反向遍...

  • 常见算法的 js 实现

    排序算法 1、冒泡排序 2、快速排序 3、二路归并 字符串操作 1、判断回文字符串 2、翻转字符串 思路一:反向遍...

  • js相关算法

    一、排序算法 1、冒泡排序 2、快速排序 3、二路归并 二、字符串操作 1、判断回文字符串 2、翻转字符串 思路一...

  • Android中字符串操作简介

    字符串排序(冒泡排序) 字符串比较大小 反转字符串 获取某段字符 判断字符串中出现的子字符串的次数

  • 数据结构与算法——字符串排序

    数据结构与算法——字符串排序 对于许多排序应用,决定顺序的键都是字符串。下面将学习专门针对字符串类型的排序方法,这...

  • 前端常见算法的JS实现

    排序算法1、冒泡排序 2、快速排序 3、二路归并 字符串操作1、判断回文字符串 2、翻转字符串思路一:反向遍历字符...

  • 字符串排序

    对于许多排序应用,决定顺序的键都是字符串。这里将分享两类完全不同的字符串排序方法,三种不同的字符串排序算法。 ...

网友评论

      本文标题:字符串排序

      本文链接:https://www.haomeiwen.com/subject/hwgkyftx.html