博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
有趣的排序——百度2017春招
阅读量:4143 次
发布时间:2019-05-25

本文共 829 字,大约阅读时间需要 2 分钟。

有趣的排序

度度熊有一个N个数的数组,他想将数组从小到大 排好序,但是萌萌的度度熊只会下面这个操作:

任取数组中的一个数然后将它放置在数组的最后一个位置。
问最少操作多少次可以使得数组从小到大有序? 

输入描述:
首先输入一个正整数N,接下来的一行输入N个整数。(N <= 50, 每个数的绝对值小于等于1000)
输出描述:
输出一个整数表示最少的操作次数。
输入例子1:
419 7 8 25
输出例子1:
2
思路:整体思路是将未排序的元素依次按照从小到大的顺序放置到数组的最后。关键在于什么是未排序的元素?

例如:19 7 8 25 排序是 7 8 19 25,那么从排序好的第一个元素7开始,原数组中已排好的是7 8,未排序的是19 25。

原始输入的数组a,通过排序得到新的数组b。通过二者的动态比较可以得到:a中按大小顺序已经站好位置的元素的个数,即元素移动中,不需要移动就可以归位的元素,那么剩下的元素个数就是必须经过移动才能归位的元素,即最小的移动次数。按照这个思路,除了不需要动的元素以外,如果每次按照剩余元素从小到大的顺序依次取出,并放到数组的末尾的方法,就是最小移动次数的方法。

package test;import java.util.Arrays;import java.util.Scanner;/** * @author xxh 	* @date 创建时间:Aug 21, 2017 4:04:44 PM  */public class SortOfMoveToTail {	public static void main(String[] args) {		// TODO Auto-generated method stub		Scanner sc = new Scanner(System.in);		int n = sc.nextInt();		int arr[]=new int[n];		for(int i=0;i

转载地址:http://ahbti.baihongyu.com/

你可能感兴趣的文章
如何使用BBC英语学习频道
查看>>
spring事务探索
查看>>
浅谈Spring声明式事务管理ThreadLocal和JDKProxy
查看>>
初识xsd
查看>>
java 设计模式-职责型模式
查看>>
构造型模式
查看>>
svn out of date 无法更新到最新版本
查看>>
java杂记
查看>>
RunTime.getRuntime().exec()
查看>>
Oracle 分组排序函数
查看>>
删除weblogic 域
查看>>
VMware Workstation 14中文破解版下载(附密钥)(笔记)
查看>>
日志框架学习
查看>>
日志框架学习2
查看>>
SVN-无法查看log,提示Want to go offline,时间显示1970问题,error主要是 url中 有一层的中文进行了2次encode
查看>>
NGINX
查看>>
Qt文件夹选择对话框
查看>>
1062 Talent and Virtue (25 分)
查看>>
1061 Dating (20 分)
查看>>
1060 Are They Equal (25 分)
查看>>