博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法-三向字符串快速排序
阅读量:6553 次
发布时间:2019-06-24

本文共 1048 字,大约阅读时间需要 3 分钟。

根据高位优先的字符串排序的思想我们可以改进快速排序算法,根据键的首字母进行三向切分,将两者结合起来就是可以理解的高效排序算法-三向字符串快速排序。三向字符串快速排序是一个字符串排序的通用算法,最多的情况适用于含有公共前缀的字符串。

-(NSInteger)charAt:(NSString *)str index:(NSInteger)index{    if (index
middle){ [self exchange:dataSource first:i second:right--]; }else{ i++; } } [self sort:dataSource low:low high:left-1 index:index]; if (middle>=0) { [self sort:dataSource low:left high:right index:index+1]; } [self sort:dataSource low:right+1 high:high index:index];}

 代码测试:

Quick3String  *quick=[[Quick3String alloc]init];        NSMutableArray  *dataSource=[[NSMutableArray alloc]initWithObjects:@"xiang",@"girl",@"he",@"fei",@"keso",@"fly",@"elephant",@"de",@"",@"she",@"elephant",nil];          [quick sort:dataSource];        [dataSource enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {            NSLog(@"%@",obj);        }];        NSLog(@"技术交流群:%@",@"228407086");        NSLog(@"博客园-FlyElephant:http://www.cnblogs.com/xiaofeixiang");

 测试效果:

 

你可能感兴趣的文章
centos 6.8 安装redis
查看>>
subline text3 配置python环境
查看>>
fastclick.js --- 解决移动端点击事件300ms延时
查看>>
每天laravel-20160715|ConfirmableTrait
查看>>
双向链表的应用
查看>>
记录nginx访问站点流量,并发等信息
查看>>
我的友情链接
查看>>
XenServer 6.5实战系列之四:XenServer 6.5 Installation
查看>>
负载均衡
查看>>
正确分析Oracle数据的隐式游标
查看>>
System Volume Information文件夹
查看>>
sed命令
查看>>
Oracle Parallel Execution(并行执行)
查看>>
JAVA面向对象-----封装
查看>>
PhpStorm函数注释的设置
查看>>
Centos 7 安装 mysql
查看>>
侧栏广告 跟随浏览器移动(扩展)
查看>>
第二阶段冲刺阶段站立会议每天任务5
查看>>
Xshell用密钥远程连接Linux
查看>>
nginx配置详解
查看>>