C++简单选择排序
2015-07-23 17:04
453 查看
选择排序的时间复杂度是O(n^2),空间复杂度是O(1),是一种不稳定的排序方法,适用于待排序数目较少的场合。
选择排序基本思想:每趟排序在当前待排序序列中选出关键字最小的记录,添加到有序序列中。独特地方:记录移动的次数较少。
选择排序需要解决的两个问题:第一、如何在待排序序列中选出关键字最小的记录;第二、如何确定待排序序列中关键字最小的记录在有序序列中的位置。
运行结果如下图
选择排序基本思想:每趟排序在当前待排序序列中选出关键字最小的记录,添加到有序序列中。独特地方:记录移动的次数较少。
选择排序需要解决的两个问题:第一、如何在待排序序列中选出关键字最小的记录;第二、如何确定待排序序列中关键字最小的记录在有序序列中的位置。
//选择排序 # include<iostream> using namespace std; //定义选择排序函数 void selectsort(int str[],int len){ for(int i=0;i<len-1;i++){ int min=i; int count=0; //未遍历4次就已排好序,则不再遍历 for(int j=i+1;j<len;j++){ if(str[j]<str[min]) { min=j; count=1; } } if(min!=i){ int temp=str[i]; str[i]=str[min]; str[min]=temp; } if(count==0)break; cout<<"第"<<i+1<<"次遍历结果:"; for(int a=0;a<len;a++){ cout<<str[a]<<" "; } cout<<endl; } } int main(){ int str[5]={5,2,6,3,7}; int len=sizeof(str)/sizeof(str[0]);//计算数组长度 selectsort(str,len); cout<<"最终排序结果:"; for(int i=0;i<len;i++) cout<<str[i]<<" "; cout<<endl; return 0; }
运行结果如下图
相关文章推荐
- Online Judge System For SzNOI 题库 语法百题 C++ d019
- 嵌套循坏逐步求数组最大值并打印
- 【C++】C语言的关键字volatile有何作用?
- STL map常用操作简介
- C++ primer读书笔记 4
- Online Judge System For SzNOI 题库 语法百题 c++ d018
- Online Judge System For SzNOI 题库 语法百题 C++ d017
- Online Judge System For SzNOI 题库 语法百题 C++ d016
- Online Judge System For SzNOI 题库 语法百题 C++ d015
- 【C++】深拷贝和浅拷贝
- Online Judge System For SzNOI 题库 语法百题 C++ d014
- Online Judge System For SzNOI 题库 语法百题 C++ d013
- C++中static用法总结
- Onilne Judge System For SzNOI 题库 语法百题 C++ d012
- 【C语言】关于atoi,itoa与itob的重写和字符统计
- Online Judge System For SzNOI 题库 语法百题 C++ d011
- C++宽字符串转字符串
- UVa10305拓扑排序入门题 可做模板用
- C++ base64 编解码
- C++ 之Socket 编程 send rev 阻塞设置 阻塞超时时间