简单选择排序

时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte
总提交:836            测试通过:259

描述

给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中的简单选择排序算法进行排序,并输出排序过程中每趟及最后结果的相应序列。

输入

共两行,第一行给出排序元素数目n,第二行给出n个元素,1≤n≤400,每个元素值范围为 [0,100000)

输出

三个部分

第1部分为两行,第1行输出文字“Source:”,第2行给出原始序列;

第2部分,开始输出文字“Select Sort:”,后续输出简单选择排序过程;

第3部分,开始输出文字“Result:”,后续输出排序结果。

样例输入

7
48 36 68 72 12 48 2

样例输出

Source:
(48 36 68 72 12 48 2)
Select Sort:
(2) 36 68 72 12 48 48
(2 12) 68 72 36 48 48
(2 12 36) 72 68 48 48
(2 12 36 48) 68 72 48
(2 12 36 48 48) 72 68
(2 12 36 48 48 68) 72
Result:
(2,12,36,48,48,68,72)

提示

数据结构A实验四

题目来源

CHENZ

#include<iostream>
using namespace std;
int main()
{
int n,i;
std::cin>>n;
int *arr=new int[n];
for(i=;i<n;i++)
{
std::cin>>arr[i];
}
std::cout<<"Source:"<<std::endl;
std::cout<<"(";
for(i=;i<n;i++)
{
std::cout<<arr[i];
if(i<n-)
std::cout<<" ";
}
std::cout<<")"<<std::endl;
std::cout<<"Select Sort:"<<std::endl;
for(i=;i<n;i++)
{
int k=i;
for(int j=i+;j<n;j++)
{
if(arr[j]<arr[k])
{
k=j;
}
}
if(k!=i)//交换数据
{
arr[i]=arr[i]+arr[k];
arr[k]=arr[i]-arr[k];
arr[i]=arr[i]-arr[k];
std::cout<<"(";
for(int m=;m<n;m++)
{
std::cout<<arr[m];
if(m==i)
std::cout<<")";
std::cout<<" ";
}
std::cout<<std::endl;
}
}
std::cout<<"Result:"<<std::endl;
std::cout<<"(";
for(i=;i<n;i++)
{
std::cout<<arr[i];
if(i<n-)
std::cout<<",";
}
std::cout<<")"<<std::endl;
return ;
}
 

ACM——简单排序的更多相关文章

  1. Java数据结构和算法之数组与简单排序

    一.数组于简单排序 数组 数组(array)是相同类型变量的集合,可以使用共同的名字引用它.数组可被定义为任何类型,可以是一维或多维.数组中的一个特别要素是通过下标来访问它.数组提供了一种将有联系的信 ...

  2. 简单排序算法 C++类实现

    简单排序算法: 冒泡排序 插入排序 选择排序 .h代码: // // SortClass.h // sort and selection // // Created by wasdns on 16/1 ...

  3. iOS简单排序--字母排序、NSDictionary排序

    // 数组用系统方法compare做字母的简单排序 NSArray *oldArray = @[@"bac",@"bzd",@"azc",@ ...

  4. 简单排序算法设计(Java)

    总共有八种排序算法,还是慢慢看吧 1.简单排序算法 简单排序算法就是设置标兵,逐个比较数,然后查找插入位置,插入 public static void p(int[] a){ for(int i=0; ...

  5. Java数据结构和算法 - 简单排序

    Q: 冒泡排序? A: 1) 比较相邻的元素.如果第一个比第二个大,就交换它们两个; 2) 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数; 3) 针 ...

  6. 《Algorithms算法》笔记:元素排序(1)——简单排序

    <Algorithms算法>元素排序(1)——简单排序 Algorithms算法元素排序1简单排序 排序问题 1 回调函数 2Java中回调函数的路线图 3 全序 4 Comparable ...

  7. JavaScript中简单排序总结

    JavaScript中简单排序总结 冒泡排序 经典排序算法, 双重for循环 在第二个for循环的时候, j < arr.len -1 -i , 这一步的优化很重要 function bullS ...

  8. 《java数据结构与算法》系列之“简单排序"-冒泡,选择,插入

    好几天又没写,因为这几天很闲,平时忙的时候自己再累都不会睡着,但是呢这没事了,照理说应该是不瞌睡了,结果还睡着了. 所以说,人很贱.也验证了一句话,没有目标的人其实最无聊.人一定要有自己的工作,这工作 ...

  9. golang slice 简单排序

    原文链接:https://www.jianshu.com/p/603be4962a62 demo package main import ( "fmt" "sort&qu ...

随机推荐

  1. ArcGIS Runtime for Android开发教程V2.0(8)基础篇-----地图事件

    转自:http://blog.csdn.net/arcgis_mobile/article/details/8263283 ArcGIS Runtime sdk for Android为我们提供了丰富 ...

  2. Spring注解@Component、@Repository、@Service、@Controller,@Autowired、@Resource用法

    一.Spring定义bean,@Component.@Repository.@Service 和 @Controller Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥 ...

  3. POJ 3159 Candies 差分约束dij

    分析:设每个人的糖果数量是a[i] 最终就是求a[n]-a[1]的最大值 然后给出m个关系 u,v,c 表示a[u]+c>=a[v] 就是a[v]-a[u]<=c 所以对于这种情况,按照u ...

  4. [liu yanling]测试用例设计综合策略

    Myers提出了使用各种测试方法的综合策略: 1)    在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强. 2)    必要时用等价类划分方法补充一些测试 ...

  5. poj 2528 线段树 离散化的小技巧

    题意:在墙上贴海报,海报可以互相覆盖,问最后可以看见几张海报思路:直接搞超时+超内存,需要离散化.离散化简单的来说就是只取我们需要的值来 用,比如说区间[1000,2000],[1990,2012] ...

  6. Xmind Pro 3.4.0.201311050558 Xmind 3.4 破解版 Crack

    其实就一个附件.某大神那里的下不到了.从这里就好了. 使用方法请参见压缩包~ 如果连接不能用了请及时告知回复.>< 仅适用于与版本号为201311050558的Xmind.当然尊重正版开发 ...

  7. Dynamics CRM 2011 2013-(An error occurred while opening mailbox xxx@xx.com Microsoft.Crm.Tools.Email.Providers.)

    An error occurred while opening mailbox  Microsoft.Crm.Tools.Email.Providers. Whenever I check how C ...

  8. Grails教程之--我的理解

    最近工作中接触到了Grails,对于这门技术,网上的资料不算太多,有的基本也是大同小异.我打算边学边写一些东西,毕竟是一个学习的过程,写的东西如果有错误或者理解不正确的地方,还希望大家能指出来.帮助我 ...

  9. java-1-java开发环境安装及配置-绝对权威

    1,下载安装jdk1.8u45 http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 一般安装目录 ...

  10. TDD中的迭代

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:TDD中的迭代.