排序算法——选择排序
来源:互联网 发布:linux ubuntu jar命令 编辑:程序博客网 时间:2024/05/17 07:08
思想
还是先来看看选择排序的思想。选择排序的思想非常直接,不是要排序么?那好,我就从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作了。可以很清楚的发现,选择排序是固定位置,找元素。相比于插入排序的固定元素找位置,是两种思维方式。不过条条大路通罗马,两者的目的是一样的。
代码
for(int i=0; i<v.size(); i++){
int min = v[i];
int temp;
int index = i;
for(int j=i+1;j<v.size();j++){
if(v[j] < min){
min = v[j];
index = j;
}
}
temp = v[i];
v[i] = min;
v[index]= temp;
}
分析
从选择排序的思想或者是上面的代码中,我们都不难看出,寻找最小的元素需要一个循环的过程,而排序又是需要一个循环的过程。因此显而易见,这个算法的时间复杂度也是O(n*n)的。这就意味值在n比较小的情况下,算法可以保证一定的速度,当n足够大时,算法的效率会降低。并且随着n的增大,算法的时间增长很快。因此使用时需要特别注意。
今天又介绍了一种简单的排序方法,下次可能要讲一讲另外一种简单方法——冒泡排序。
0 0
- 排序算法—选择排序
- 排序算法之选择排序——简单选择排序
- 数据结构&算法实践—【排序|选择排序】选择排序
- 排序算法1—插入排序、选择排序、冒泡排序
- 排序算法之——选择排序
- 排序算法——选择排序
- 排序算法——选择排序
- 排序算法——简单选择排序
- 排序算法总结——选择排序
- 内部排序算法——选择排序
- 排序算法2——选择排序
- 排序算法——选择排序
- 排序算法——选择排序
- 排序算法——选择排序
- 排序算法——选择排序
- 排序算法——选择排序
- 排序算法——选择排序
- 经典排序算法——选择排序
- JS客户端RSA加密,Java服务端解密
- 聚类评估算法-轮廓系数(Silhouette Coefficient )
- ubuntu sphinx 进行分词的配置
- 线性搜索
- mysql获取某个表的所有字段名
- 排序算法——选择排序
- MySQL扩容
- viewPager小圆点
- ofbiz错误处理之二
- Xcode清理记录
- [机器学习] Coursera笔记 - Support Vector Machines
- 构建高并发高可用的电商平台架构实践
- 对StringGrid输入一个数后对其他表格填充的代码
- rsync同步文件