简单选择排序

时间限制(普通/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. 浅谈MS-SQL锁机制

    锁的概述 一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏 ...

  2. SQL Server 2008空间数据应用系列九:使用空间工具(Spatial Tools)导入ESRI格式地图数据

    转自:http://www.cnblogs.com/beniao/archive/2011/03/22/1989310.html 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Micros ...

  3. zookeeper服务器端管理工具

    zookeeper基本是基于API和console进行znode的操作,并没有一个比较方便的操作界面,这里也发现了taobao 伯岩写的一个工具,可以比较方便的查询zookeeper信息. 工具的开发 ...

  4. Android项目开发全程(一)--创建工程

    每个程序员都知道,项目工程的整体架构对开发有着决定性的影响,在后续的开发工作中,能不能有效的减少代码的重复量和有效的人员分工取决于前期工程整体的架构.刚参加工作还不到一个月就意识到之前做的项目在架构方 ...

  5. Android ListView 全面优化

    结合昨天学习的多线程,今天又继续对ListView进行了优化,包括异步加载图片,滑动时暂停加载,滑动停止后再加载显示界面中的item. 综合ListView在使用时参考的多篇博客,这里对ListVie ...

  6. Scala学习笔记(一)数据类型

    .类型参数化数组 val arrayString = Array[String](2); arrayString (0)="Hello"; arrayString (1)=&quo ...

  7. HW5.4

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  8. java request判断微信客户端访问

    微信客户端访问时候user-agent信息如下: Mozilla/5.0 (Linux; Android 5.0.1; M040 Build/LRX22C) AppleWebKit/537.36 (K ...

  9. opencv基础知识-videowriter

    一.前言-简介 在试验中需要常常将实验结果进行保存,在opencv中提供很好用的录制视频的句柄,也可称之为类-videowriter. videowriter应用那是相当的简单,总之分为三步: //声 ...

  10. Cocos2d-x MultipleTouch & CCControllButton's confusion

    在cocos2dx的程序设计中有时候会遇到需要多点触摸的功能,下面先介绍一下在cocos2dx中多点触摸的一般规则,然后介绍我遇到的一个有关多点触摸的情景的解决方案. (一)使用多点触摸规则: 关于多 ...