一种复杂度的为O(n)的排序方法
来源:互联网 发布:多益网络手游新游戏 编辑:程序博客网 时间:2024/05/22 00:29
1. 有一种算法却不用比较,而他的时间复杂度是O(n),那就是计数排序,这个算法的思路是这个样子的,
如果由小到大排序,首先建立一个足够大的数组a[INF];把数组清0,当输入一个数m的时候 那么执行a[m]++;
这样a[m]就是1了 如果再有同一个数等于m那么就是a[m]=2......最后输入n个数之后,我们从a[0]开始 如果a[0]等于0那么相当于n个数里没有0 接着往后走,等到了a[1] 发现a[1]为3 说明这个n个数里有3个1,这样连续输出三个1,当遇到a[v] = t说明 有t个v......最后排序结束,
当如你会发现其实这个算法有限制条件,
比如这个数里不能有太大的数 当数大于100万时,我们是无法建立一个100万+的数组的.
当然数也不能小于0。
其实讲这个算法的目的就是告诉一些新手 我们平时n大的数组a[i] = m,代表存下了m 反过来想a[m] =1 ;其余的都是0我们岂不也同样存下了m....
0 0
- 一种复杂度的为O(n)的排序方法
- 复杂度为o(n)的计数排序
- 时间复杂度为O(n)的排序
- 时间复杂度为O(n)的排序
- 一种复杂度为O(n)的排序算法:位操作应用之位排序
- 一个时间复杂度为O(n),空间复杂度为O(1)的排序算法
- 排序的时间复杂度为O(n),空间复杂度为O(1)
- 时间复杂度为O(N),空间复杂度为O(1)的排序算法
- 时间复杂度为O(n+t)的排序
- 时间复杂度为O(n)的排序算法
- 时间复杂度为O(n)的排序算法--计数算法
- 堆排序建堆复杂度为O(n)的证明
- 面试9:时间复杂度为O(n)的排序算法
- 基于时间复杂度为O(n)的排序算法
- 用bitmap的方法实现排序,时间复杂度为O(n),C实现
- 3种顺序排序方法。简单排序是指时间复杂度为O(n^2)的排序方法。
- 时间为O(n)的排序方法
- 复杂度为n的排序
- join、split、strip的学习
- Linux--UDPsocket传输图片
- 对实习医生格蕾的初步探索"
- 使用vs2013 debug xgboost C++码源
- 爬虫(Spider),反爬虫(Anti-Spider),反反爬虫(Anti-Anti-Spider),这之间的斗争恢宏壮阔...
- 一种复杂度的为O(n)的排序方法
- Windows下rm的等效命令
- 缓冲区溢出漏洞(一):认识缓冲区溢出漏洞.
- 算法提高 9-2 文本加密
- 给Java说句公道话---转自王垠http://www.yinwang.org/blog-cn/2016/01/18/java
- 数据库调试神器
- 菜鸟安装python记
- centos安装tmux
- opengl 创建窗口