简单排序算法
2016-03-22 23:52
246 查看
算法思想:将初始序列(A[0]~A[n-1])作为待排序序列,第一趟在待排序序列(A[0]~A[n-1])中找最小值元素,与该序列中第一个元素A[0]交换,这样的子序列(A[0])有序,下一趟排序在待排序子序列(A[1]~A[n-1])中进行。第i趟排序在待排序子序列(A[i-1]~A[n-1])中,找最小值元素,与该子序列中第一个元素A[i-1]交换。经过n-1趟排序后使得初始化序列有序。
#include<iostream> using namespace std; void swap(int *a,int *b) { int t; t=*a; *a=*b; *b=t; } int main() { int a[100]; int i,j,n,small; cin>>n; for(i=0;i<n;i++) cin>>a[i]; for(i=0;i<n-1;i++) { small=i;//假定每次排序的序列的第一个元素最小 for( j=i+1;j<n;j++) { if(a[j]<a[small]) small=j;//存储最小的数位置 } if(small!=i) //如果第一个元素不是最小的 swap(&a[i],&a[small]);//将每次最小的数与第一个元素进行交换 } for(i=0;i<n;i++) cout<<a[i]<<" "; cout<<endl; return 0; }
相关文章推荐
- Web API相对WCF优势,以及构建WebApi
- oc-16-set,get方法
- 自定义模板引擎_3
- 解决switch……case不能匹配字符串的方法
- java jdbc线程池的使用
- 解析json数据
- XCode所有版本
- Homework 4
- 自动展示收起广告功能
- [LinkedList和数组]——自定义Map升级版
- python之类-django进阶
- Fragment的startActivityForResult详细解决方案
- 结对项目 - 词频统计
- CALayer动画实践(二):CAReplicatorLayer的用法
- leetcode014 Longest Common Prefix
- Netty系列之Netty百万级推送服务设计要点
- Android中常见IPC方法总结
- 206. Reverse Linked List
- 神坑,mac 10.11.2 安装cocoapods
- 因Window服务器自动更新并重启导致WebSphere服务停止服务故障一例