首页 > 代码库 > 直接选择排序
直接选择排序
直接选择排序
基本思想:每一趟在n-i+1(i1,2,...,n-1)个记录中选出最小的记录,并与第i个记录交换。
代码实现:
#include<stdio.h> #include<iostream> using namespace std; int n; int Select(int a[],int k) { int i,minx,t; for(i=k;i<=n;i++) { if(i==k) { minx=a[i]; t=k; } else { if(a[i]<minx) { minx=a[i]; t=i; } } } return t; } void SelectSort(int a[]) { int i,j,t; for(i=1;i<=n-1;i++) { j=Select(a,i); //选出数组a[i...n]中最小的数 if(i!=j) //交换位置 { t=a[i]; a[i]=a[j]; a[j]=t; } } } int main () { int i,a[100]; cin>>n; for(i=1;i<=n;i++) cin>>a[i]; SelectSort(a); for(i=1;i<=n;i++) cout<<a[i]<<" "; return 0; }
直接选择排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。