iOS开发基础笔记-算法<三>
2015-06-28 17:25
330 查看
算法复杂度
算法复杂度分为时间复杂度和空间复杂度。其作用: 时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。(算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度)。
排序算法:
1.冒泡排序
2.选择排序
每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法
3.快速排序
首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。
4.插入排序
每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。时间复杂度为O(n^2)。
算法复杂度分为时间复杂度和空间复杂度。其作用: 时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。(算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度)。
排序算法:
1.冒泡排序
2.选择排序
每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法
3.快速排序
首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。
4.插入排序
每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。时间复杂度为O(n^2)。
相关文章推荐
- iOS 阶段学习第十天笔记(结构体)
- ios8.3 越狱之后,没有ps,top等命令
- 解决iOS Xcode 模拟器键盘不弹出
- iOS 并行开发技术之 NSOperation && GCD
- iOS 页面间几种传值方式(属性,代理,block,单例,通知)
- iOS日志获取
- iOS 单元测试之XCTest详解(一)
- 在iOS 中创建自定义Delegates properties with ARC错误的解决方法
- 苹果开发 笔记(42)leftBarButtonItem
- nagios 安装和配置(含有nrpe结束)所有 (两)
- nagios安装和配置(个人笔记)
- iOS 阶段学习第九天笔记(内存管理)
- iOS 集成环信, 扩展属性, chatcell label 可被点击
- iOS开发学习笔记(二)—— 让图片“动”起来!
- iOS中四种实例变量的范围类型@private@protected@public@package
- iOS block的用法
- 安装nagios框架
- iOS毛玻璃效果的实现
- iOS中系统唯一标识ID
- iOS开发中XML的DOM和SAX解析方法