排序和去重--说说两个简单常用的算法
来源:互联网 发布:人工智能剖析人类思维 编辑:程序博客网 时间:2024/04/25 15:38
for(i = 0; i < n; i++)
{
for(int j = i +1; j< n ;j++)
{
if(array[i] > array[j])
{int a = array[i];
array[i] = array[j];
array[j] = a;
}}
}
理解冒泡算法很简单:第一次以第一个数据为开始比较拿到数据中的最值放到原来的位置,然后往下移动一次,找寻另外的n-1个数据中的最值,放入第二个位置,一次这样运行结束。
冒泡排序的时间复杂度计算:由于在循环的最中心的区域有数据比较和交换的执行,所以这三行代码要计算时间复杂度,因此最短时间为n*(n-1)/2 ;最长时间是 n*3(n-1)/2;平均起来时间复杂度就是 O(n^2)。其实这个计算不合理,以为在循环的核心中有比较计算,比较计算也是需要耗费时间的,那么应该是n*(n-1)/2 和n*4(n-1)/2的均值。
去重算法 -- 比较去重
对于一个数据结构判断重复的数组不能直接在原有的数据结构中剔除,这样会导致数据结构索引溢出。
最常用最简单的算法就是一次比较去重:
for(i = 0; i < n; i++)
{
for(int j = i + 1; j < n; j++ )
{
if(array[i] == array[j])
{
continue;
}
else
{
if(j == n-1)
{
//都比较完了
list.add(array[i]);
}
}
}
}
时间复杂度平均值:[n*(n-1)/2 + n*2(n-1)/2]/2 ~= O(1.5n^2)
空间复杂度平局值:O(n)
- 排序和去重--说说两个简单常用的算法
- 简单的去重算法
- 一个简单的去重排序方法
- 去重和排序
- 去重和排序
- vector的排序和去重
- js数组的去重和排序
- 两个集合合并成并去重的简单方法
- 数组排序去重算法
- 大文件的排序和去重 超级简单的实现
- 用哈希算法的思想解决排序和字符串去重问题,时间复杂度为O(N)
- 两个List合并去重,并排序
- js史上最简单的数组合并去重排序
- iOS 数组的去重(普通的无序的去重和排序好的去重)
- iOS 数组的去重(普通的无序的去重和排序好的去重)
- iOS 数组的去重(普通的无序的去重和排序好的去重)
- iOS 数组的去重(普通的无序的去重和排序好的去重)
- 去重的全排序
- sina登录写微博飞过海风格
- MySql避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)
- 一个丝滑的全屏滑动返回手势
- table标签添加行和删除行(Jquery)
- Mysql运维与分析--Load data
- 排序和去重--说说两个简单常用的算法
- windows10+VS2013+Cuda7.5+python2.7+caffe
- Java中的Random()函数
- ListView和GridView多次调用GetView的现象和解决办法
- html5学习笔记(二)
- 利用js模拟投票在无验证投票网页上刷票
- 16进制和float之间转换
- linux安装nginx(Red hat 亲测)
- Linux查看和编辑环境变量