算法提高 选择排序

时间限制:1.0s 内存限制:256.0MB

  

  选择排序

问题描述

  排序,顾名思义,是将若干个元素按其大小关系排出一个顺序。形式化描述如下:有n个元素a[1],a[2],…,a[n],从小到大排序就是将它们排成一个新顺序a[i[1]]<a[i[2]]<…<a[i[n]]

  i[k]为这个新顺序。

  选择排序的思想极其简单,每一步都把一个最小元素放到前面,如果有多个相等的最小元素,选择排位较考前的放到当前头部。还是那个例子:{3 1 5 4 2}:

  第一步将1放到开头(第一个位置),也就是交换3和1,即swap(a[0],a[1])得到{1 3 5 4 2}

  第二步将2放到第二个位置,也就是交换3和2,即swap(a[1],a[4])得到{1 2 5 4 3}

  第三步将3放到第三个位置,也就是交换5和3,即swap(a[2],a[4])得到{1 2 3 4 5}

  第四步将4放到第四个位置,也就是交换4和4,即swap(a[3],a[3])得到{1 2 3 4 5}

  第五步将5放到第五个位置,也就是交换5和5,即swap(a[4],a[4])得到{1 2 3 4 5}

  输入n个整数,输出选择排序的全过程。

  要求使用递归实现。

输入格式

  第一行一个正整数n,表示元素个数

  第二行为n个整数,以空格隔开

输出格式

  共n行,每行输出第n步选择时交换哪两个位置的下标,以及交换得到的序列,格式:

  swap(a[i],a[j]):a[0] … a[n-1]

  i和j为所交换元素的下标,下标从0开始,最初元素顺序按输入顺序。另外请保证i<=j

  a[0]…a[n-1]为交换后的序列,元素间以一个空格隔开

样例输入

5

4 3 1 1 2

样例输出

swap(a[0], a[2]):1 3 4 1 2

swap(a[1], a[3]):1 1 4 3 2

swap(a[2], a[4]):1 1 2 3 4

swap(a[3], a[3]):1 1 2 3 4

swap(a[4], a[4]):1 1 2 3 4

数据规模和约定

  n<=100

  整数元素在int范围内

import java.util.Scanner;

public class 选择排序 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=Integer.parseInt(sc.nextLine());
String[] str=sc.nextLine().split(" ");
int[] array=new int[str.length];
for(int i=0;i<str.length;i++){
array[i]=Integer.parseInt(str[i]);
}
stepChoiceSort(array, 0);
} public static void stepChoiceSort(int[] array,int index){
if(index>=array.length){
return;
}else{
int min=index;
for(int i=min+1;i<array.length;i++){
if(array[i]<array[min]){
min=i;
}
}
int temp=array[index];
array[index]=array[min];
array[min]=temp;
System.out.println("swap(a["+index+"], a["+min+"]):"+xunhuan(array));
stepChoiceSort(array, ++index);
}
} public static String xunhuan(int[] a){
String str="";
for(int i=0;i<a.length;i++){
str+=a[i]+" ";
}
return str;
} }

Java实现 蓝桥杯VIP 算法提高 选择排序的更多相关文章

  1. Java实现 蓝桥杯VIP 算法提高 身份证排序

    算法提高 身份证排序 时间限制:1.0s 内存限制:256.0MB 问题描述 安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序.身 ...

  2. Java实现 蓝桥杯VIP 算法提高 项链

    算法提高 项链 时间限制:1.0s 内存限制:512.0MB 问题描述 由 n(1≤n≤100) 个珠子组成的一个项链,珠子有红.蓝.白三种颜色,各种颜色的珠子的安排顺序由键盘输入的字符串任意给定.蓝 ...

  3. Java实现 蓝桥杯VIP 算法提高 色盲的民主

    算法提高 色盲的民主 时间限制:1.0s 内存限制:256.0MB  色盲的民主 问题描述 n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自己的主张,争论不休.最终,他 ...

  4. Java实现 蓝桥杯VIP 算法提高 笨小猴

    算法提高 笨小猴 时间限制:1.0s 内存限制:256.0MB 问题描述 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率 ...

  5. Java实现 蓝桥杯VIP 算法提高 研究兔子的土豪

    试题 算法提高 研究兔子的土豪 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 某天,HWD老师开始研究兔子,因为他是个土豪 ,所以他居然一下子买了一个可以容纳10^18代兔子的巨大 ...

  6. Java实现 蓝桥杯VIP 算法提高 3-2求存款

    算法提高 3-2求存款 时间限制:1.0s 内存限制:256.0MB 问题描述 见计算机程序设计基础(乔林)P50第5题. 接受两个数,一个是用户一年期定期存款金额,一个是按照百分比格式表示的利率,计 ...

  7. Java实现 蓝桥杯VIP 算法提高 3-3求圆面积表面积体积

    算法提高 3-3求圆面积表面积体积 时间限制:1.0s 内存限制:256.0MB 问题描述 接受用户输⼊的数值,输出以该值为半径的(1)圆面积,(2)球体表面积,(3)球体体积.pi 取值3.1415 ...

  8. Java实现 蓝桥杯VIP 算法提高 5-3日历

    算法提高 5-3日历 时间限制:1.0s 内存限制:256.0MB 问题描述 已知2007年1月1日为星期一.设计一函数按照下述格式打印2007年以后(含)某年某月的日历,2007年以前的拒绝打印.为 ...

  9. Java实现 蓝桥杯VIP 算法提高 11-2删除重复元素

    算法提高 11-2删除重复元素 时间限制:10.0s 内存限制:256.0MB 问题描述 为库设计新函数DelPack,删除输入字符串中所有的重复元素.不连续的重复元素也要删除. 要求写成函数,函数内 ...

随机推荐

  1. 不同版本(2.3/2.4/2.5/3.0/3.1)web.xml头信息

    Web App 3.1 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http:// ...

  2. PAT 1015 Reversible Primes (20分) 谜一般的题目,不就是个进制转换+素数判断

    题目 A reversible prime in any number system is a prime whose "reverse" in that number syste ...

  3. Java集合类: Set、List、Map

    Set.List.Map都是集合接口   set --其中的值不允许重复,无序的数据结构   list   --其中的值允许重复,因为其为有序的数据结构   map--成对的数据结构,健值必须具有唯一 ...

  4. mybatis 分页失败 始终pageSize = 2147483647

    是在使用分页查询时 this.jobReadMapper.beginPager(pageParam);XXXXXXXXXXXXXXXXXXXXXXXXthis.xxxReadMapper.queryB ...

  5. 函数的不同调用方式决定了this的指向不同

    一.函数的不同调用方式决定了this的指向不同,一般指向调用者 1.普通函数   this指向window的调用者        function fn(){            console.l ...

  6. linux常用命令---网络端口信息与进程管理

    进程管理 进程管理

  7. Storm-jdbc-2讲 高级API及Trident

    之前对Storm集成JDBC写了一个简单的demo,最近深度研究了下,代码如下 首先,先写一个抽象类,便于减少代码的重复性: import com.google.common.collect.List ...

  8. 自定义spring-boot-starter

    需求背景: Springboot是Spring旗下优秀的子项目之一,其核心理念之一:约定优于配置.通过自动化的配置极大的提升了我们的开发效率,目前已集成诸多组件的starter起步依赖,帮助我们更加快 ...

  9. html页面加载顺序

    页面总是从上往下执行 CSS为什么要放在头部 1.CSS可以和html一起同时进行解析和渲染 2.如果你把CSS放到body后面,不但没有跟html一起进行加载渲染,还要花费额外时间去加载CSS,这样 ...

  10. JavaScript事件坐标区别(offset,client,page)

    学习笔记. 1. offset:其定位原点是当前元素左上角 2. client:其定位原点是当前窗口左上角 3. page:其定位原点是当前页面左上角 下面来验证一下. 先上代码: <!doct ...