当前位置:  编程技术>移动开发
本页文章导读:
    ▪为何说任何基于比较的算法将 5 个元素排序都需要 7 次        为什么说任何基于比较的算法将 5 个元素排序都需要 7 次? 排序算法对结果的唯一要求就是操作数满足全序关系:   如果 a≤b 并且 b≤c 那么 a≤c(传递性)。 对于 a 或 b,要不 a≤b,要不.........
    ▪ 2D格斗游戏骨材        2D格斗游戏素材 地址: http://tieba.baidu.com/f?kw=2dfm&fr=ala0   有时间可以研究下。     ......
    ▪ 图文解释XCode惯用快捷键的使用       图文解释XCode常用快捷键的使用 刚开始用Xcode是不是发现以前熟悉的开发环境的快捷键都不能用了?怎么快捷运行,停止,编辑等等、都不一样了。快速的掌握这些快捷键,能提供开发的效.........

[1]为何说任何基于比较的算法将 5 个元素排序都需要 7 次
    来源: 互联网  发布时间: 2014-02-18
为什么说任何基于比较的算法将 5 个元素排序都需要 7 次?

排序算法对结果的唯一要求就是操作数满足全序关系:

 

如果 a≤b 并且 b≤c 那么 a≤c(传递性)。

对于 a 或 b,要不 a≤b,要不 b≤a(完全性)。

这个问题可以用信息论来回答。

 

我从 1 到 5 中挑一个数字出来让你来猜,每回合你都可以问我一个问题,我的回答“是”或“不是”(1 或 0),那么你至少需要几个回合才能保证猜出这个数字?

 

比较符合这个游戏精神的玩法是从自己的幸运数字(比如我的是7)开始猜起,一个一个地问我“是不是X?”, 可能你的运气足够好,一个回合就能够猜对,但是在最坏的情况下可能就需要5个回合,所以你的答案应该是“至少需要5个回合” (事实上你至少只需要一次就“有可能”猜出来,但为了“保证能”猜出来,你只好委曲求全地说 5), 换句话说这种猜法的最优下界是 5。 (平均性能是 1×1/5+2×1/5+…+5×1/5=(1+…+5)/5 = 3)

 

但因为你会二分,所以会这样问“是不是比3大?”……而且无论我挑出的数字是几,都只用3个回合。 二分显然是一种更佳的策略,那么它好在什么地方呢? 用信息论理解: 最大的熵。

 

英文版维基百科词条有个大致的解释:Comparison_sort, 最少次数为 log(5!) = 6.91,取整的话,就是 7。

 

决策树如下:

 

 

如果我们用归并排序的话,比较次数是O(nlogn),因为归并排序是 全局最优解,但是在局部,归并并不都保证是最优的。

 

附一张快速排序的 gif 图:

 


    
[2] 2D格斗游戏骨材
    来源: 互联网  发布时间: 2014-02-18
2D格斗游戏素材

地址: http://tieba.baidu.com/f?kw=2dfm&fr=ala0

 

有时间可以研究下。



 

 

 


    
[3] 图文解释XCode惯用快捷键的使用
    来源: 互联网  发布时间: 2014-02-18
图文解释XCode常用快捷键的使用

刚开始用Xcode是不是发现以前熟悉的开发环境的快捷键都不能用了?怎么快捷运行,停止,编辑等等、都不一样了。快速的掌握这些快捷键,能提供开发的效率。

其实快捷键在Xcode的工具栏里都标注有,只是有的符号和你的键盘上的符号对应不起来罢了。下面截图工具栏里的快捷键总结一下常用快捷键的用法。

 

一、关于运行调试

1、运行,停止,都在工具栏的Product里。

Command + R  运行。

Command + .  停止

 

2、F6单步调试、F7跳入,F8继续, 和Eclipse,VS类似

 

二、导航

这是导航里的快捷键

到这里要解释一下,有的同学可能不知道里面的符号代表什么,那个花键大家都知道,是command键,其他的几个键那,怎么在键盘上找不到呢?不着急,看图:

其实分别是咱们常用的option 、control、shift键。

 

1、切换头文件和m.文件,很实用

Command + control+ 上下箭头键

 

2、go back,回退,干嘛用啊,就是回到你上次打开的页面。

control+command+ 左箭头

go forward 回到你前面打开的页面

control+command+ 右箭头

三、文件  File

新建项目 command+shift+n
新建文件 command+n
新建空文件 command+control+n
打开 command+o
关闭窗口 command+w
保存所有文件 command+option+s
还原到保存时状态 command+u

 

 
四、编辑代码
1、代码缩进

左缩进 command+[
右缩进 command+]

2、代码编辑
control-F: 向右一个字符(forward)
control-B: 向左一个字符(backward)
control-P: 前一行(previous)
control-N: 后一行(next)
control-A: 去行首
control-E: 到行尾(end)
control-T: 调换光标两边的字符(transpose)
control-D: 删除光标右侧字符(delete)
control-K: 删除本行剩余的字符(kill)
3、文档内搜索
Command + F: 搜索
Command + G: 搜索下一处
Shift + Command + G: 搜索上一处

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3