- (NSMutableArray *)zuHeSuanFa:(NSMutableArray *)array chooseCount:(int)m
{
int n = (int)[array count]; if (m > n)
{
return nil;
} // NSLog(@"从1到%d中取%d个数的组合。。。",n,m); NSMutableArray *allChooseArray = [[NSMutableArray alloc] init];
NSMutableArray *retArray = [array copy]; // (1,1,1,0,0)
for(int i=;i < n;i++)
{
if (i < m)
{
[array replaceObjectAtIndex:i withObject:@""];
}
else
{
[array replaceObjectAtIndex:i withObject:@""];
}
} NSMutableArray *firstArray = [[NSMutableArray alloc] init]; for(int i=; i<n; i++)
{
if ([[array objectAtIndex:i] intValue] == )
{
// [firstArray addObject:[NSString stringWithFormat:@"%d",i+1]];
[firstArray addObject:[retArray objectAtIndex:i]];
// NSLog(@"%d ",i+1);
}
} [allChooseArray addObject:firstArray];
// [firstArray release];
// NSLog(@"============"); int count = ;
for(int i = ; i < n-; i++)
{
if ([[array objectAtIndex:i] intValue] == && [[array objectAtIndex:(i + )] intValue] == )
{
[array replaceObjectAtIndex:i withObject:@""];
[array replaceObjectAtIndex:(i + ) withObject:@""]; // i = 2, (1,1,0,1,0) for (int k = ; k < i; k++)
{
if ([[array objectAtIndex:k] intValue] == )
{
count ++;
}
}
if (count > )
{
for (int k = ; k < i; k++)
{
if (k < count)
{
// k = 1, (1,1,0,1,0)
[array replaceObjectAtIndex:k withObject:@""];
}
else
{
[array replaceObjectAtIndex:k withObject:@""];
}
}
} NSMutableArray *middleArray = [[NSMutableArray alloc] init]; for (int k = ; k < n; k++)
{
if ([[array objectAtIndex:k] intValue] == )
{
// NSLog(@"%d ",k+1);
// [middleArray addObject:[NSString stringWithFormat:@"%d",k + 1]];
[middleArray addObject:[retArray objectAtIndex:k]];
}
} [allChooseArray addObject:middleArray];
// [middleArray release]; // NSLog(@"============"); i = -;
count = ;
}
} return allChooseArray;
}

oc 中组合排序算法的更多相关文章

  1. Java中的排序算法(2)

    Java中的排序算法(2) * 快速排序 * 快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists). * 步骤为: * 1. 从数 ...

  2. STL笔记(6)标准库:标准库中的排序算法

    STL笔记(6)标准库:标准库中的排序算法 标准库:标准库中的排序算法The Standard Librarian: Sorting in the Standard Library Matthew A ...

  3. javascript 中合并排序算法 详解

    javascript 中合并排序算法 详解 我会通过程序的执行过程来给大家合并排序是如何排序的...  合并排序代码如下: <script type="text/javascript& ...

  4. STL中的排序算法

    本文转自:STL中的排序算法 1. 所有STL sort算法函数的名字列表: 函数名    功能描述 sort   对给定区间所有元素进行排序 stable_sort 对给定区间所有元素进行稳定排序 ...

  5. JS中常见排序算法详解

    本文将详细介绍在JavaScript中算法的用法,配合动图生动形象的让你以最快的方法学习算法的原理以及在需求场景中的用途. 有句话怎么说来着: 雷锋推倒雷峰塔,Java implements Java ...

  6. STL中sort排序算法第三个参数_Compare的实现本质

    关于C++ STL vector 中的sort排序算法有三种自定义实现,它们本质上都是返回bool类型,提供给sort函数作为第三个参数. 重载运算符 全局的比较函数 函数对象 我认为从实现方式看,重 ...

  7. 面试中常用排序算法实现(Java)

    当我们进行数据处理的时候,往往需要对数据进行查找操作,一个有序的数据集往往能够在高效的查找算法下快速得到结果.所以排序的效率就会显的十分重要,本篇我们将着重的介绍几个常见的排序算法,涉及如下内容: 排 ...

  8. 面试中常用排序算法的python实现和性能分析

    这篇是关于排序的,把常见的排序算法和面试中经常提到的一些问题整理了一下.这里面大概有3个需要提到的问题: 虽然专业是数学,但是自己还是比较讨厌繁琐的公式,所以基本上文章所有的逻辑,我都尽可能的用大白话 ...

  9. C语言中的排序算法--冒泡排序,选择排序,希尔排序

    冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没 ...

随机推荐

  1. CRL开发框架发布2.2版

    CRL 2.3.0.0 CRL是一个面向对象的轻便型ORM业务框架 数据处理使用了对象/数据映射,采用Lambda表达式来表示条件查询,增加了可编程性和可靠性,出错机率低,同时也能用原生的SQL实现查 ...

  2. 构建自己的PHP框架--实现Model类(2)

    在上一篇博客中我们简单实现了findOne方法,但我们可以看到,还是有一些问题的,下面我们来修正一下这些问题. 首先是返回的数据中,数字被转换成了字符串.我们需要的是数字啊... PDO中有属性可以支 ...

  3. C#: 向Word插入排版精良的Text Box

    Text Box(文本框)是Word排版的工具之一.在Word文档正文的任何地方插入文本框,可添加补充信息,放在合适的位置,也不会影响正文的连续性.我们可以设置文本框的大小,线型,内部边距,背景填充等 ...

  4. SharePoint 2013 托管导航 无法被开启的解决办法

    在阅读了园子中霖雨的一片博文<SharePoint 2013 托管导航及相关配置>之后,非常想尝试一下SharePoint 2013 中的这个新功能,但是我的网站集包括样式是从2010升级 ...

  5. Elasticsearch+Logstash+Kibana教程

    参考资料 累了就听会歌吧! Elasticsearch中文参考文档 Elasticsearch官方文档 Elasticsearch 其他——那些年遇到的坑 Elasticsearch 管理文档 Ela ...

  6. MVC学习系列11---验证系列之客户端验证

    前面学习了,服务端验证,这篇文章中,我们接着学习客户端验证,客户端的验证,使用Jquery和Jquery插件来实现[jquery.validate.min.js and jquery.validate ...

  7. TeamCity : 安装 Agent

    笔者在前文中介绍了 TeamCity Server 的安装过程,本文介绍在 Ubuntu Server 14.04 中安装 TeamCity Agent.Ubuntu Server 上已经创建了用户 ...

  8. hostingEnvironment与宿主环境

    定义用来控制应用程序宿主环境的行为的配置设置. 配置如下 <hostingEnvironment idleTimeout="HH:MM:SS" shadowCopyBinAs ...

  9. sql常用语句(1)

    --排序 select Row_Number() over(order by a.UserName) as Num --区分性别 then '男' else '女' end SexName Sqlse ...

  10. 模仿36。杀毒~button

    <Style x:Key="360btn" TargetType="{x:Type Button}"> <Setter Property=&q ...