全排列算法—基于OC
来源:互联网 发布:淘宝老店新开 编辑:程序博客网 时间:2024/06/08 08:44
该算法用于求得指定字符串的全排列 按数组输出其结果。利用递归思想,如果字符串只有一个字符 则其全排列 就是这个字符。如果有两个呢? 就是在一个字符的全排基础上再加上这个字符的两个位置。三个字符的串 (abc):同理视为 全排(a + bc)+全排(b + ac)+全排(c + ab)的全排;
(注: 对于字符串的分割 以及存入数组等操作 以OC封装的NSString类作为基本 比较方便 至于C怎么实现 这里不做过多解释)
NSArray *sortalgorithm(NSString *strOfValue){ //用于存储全排序列 NSMutableArray *marrOfSort = [[NSMutableArray alloc] init]; <span style="white-space:pre"></span>//若字符串为单个字符 直接返回单个字符 的数组 if ([strOfValue length] == 0) { [marrOfSort addObject:strOfValue]; return marrOfSort; } else { for (int i = 0; i < [strOfValue length]; i++) { //依次选择分割哪一个字符 char OneOfChar = [strOfValue characterAtIndex:i]; NSMutableString *strOfDeleteOneChars = [NSMutableString stringWithString:strOfValue]; //分割字符串 [strOfDeleteOneChars deleteCharactersInRange:NSMakeRange(i, 1)]; NSArray *arrOfSub = sortalgorithm(strOfDeleteOneChars);/*递归*/ for (int j = 0; j < [arrOfSub count]; j++) { NSString *strOfCombine = [NSString stringWithFormat:@"%c%@",OneOfChar,[arrOfSub objectAtIndex:j]]; [marrOfSort addObject:strOfCombine]; } } return marrOfSort; }}
0 0
- 全排列算法—基于OC
- 算法理解——全排列算法
- 排列与全排列算法
- 算法——全排列递归实现
- 递归算法——全排列
- 全排列——递归算法
- NOJ1103全排列——经典算法
- 算法思维——全排列
- 全排列算法
- 全排列算法总结
- 全排列算法
- 全排列javascript算法
- [self] 全排列算法
- C# 全排列算法
- 全排列算法
- 全排列算法大全
- 全排列算法
- 全排列递归算法
- UMeng 微博分享,报invalid_client 和 redirect_uri_mismatch
- Codeforces Round #274 (Div. 2) d Long Jumps 尺取法 + set
- java中split以"."分割
- 底部导航栏封装
- Oc复习
- 全排列算法—基于OC
- 使用ApplicationContext作为全局变量引用的缺陷
- Android:Unable to resolve target ‘android-8’问题解决
- EasyMock官方文档
- [cf193c]Students' Revenge解题报告
- Matching Names(Trie树)-(VK Cup 2015 - Finals, online mirror)
- 关于xcode 断点的设置
- 数据结构—排序总结
- HDU 2066 一个人的旅行【最短路 dijkstra & floyed & SPFA 】