摩拜 [编程题] 排序次数

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

任取数组中的一个数然后将它放置在数组的最后一个位置。

问最少操作多少次可以使得数组从小到大有序?

输入描述:

首先输入一个正整数N,接下来的一行输入N个整数。(N <= 50, 每个数的绝对值小于等于1000)

输出描述:

输出一行操作数

输入例子1:

4
19 7 8 25

输出例子1:

2

例子说明1:

19放到最后,25放到最后,两步完成从小到大排序
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] array=new int[n];
        for(int i=0;i<n;i++){
            array[i]=in.nextInt();
        }
        int len=array.length;
        int cnt=0;
        boolean flag=true;
        do{
            int min=999999999;
            int index=-1;
            for(int i=len-1;i>0;i--){
                if (array[i - 1] > array[len-1]) {
                    if(array[i-1]<min){
                        min=array[i-1];
                        index=i-1;
                    }
                }
            }
            if(index!=-1){
                int t = array[index];
                for(int j=index+1;j<len;j++){
                    array[j-1]=array[j];
                }
                array[len-1]=t;
                cnt++;
                int i;
                for(i=1;i<len;i++) {
                    if(array[i-1]>array[i]){
                        flag=false;
                        break;
                    }
                }
                if(i==len){
                    flag=true;
                }
            }
        }while (!flag);
        System.out.println(cnt);
//        for(int i=0;i<len;i++){
//            System.out.println(array[i]);
//        }
        in.close();
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏于晓飞的专栏

Java 泛型进阶

在 List<String> 中添加 Integer 将不会通过编译,但是List<Sring>与List<Integer>在运行时的确是同一种类型。

2143
来自专栏chenjx85的技术专栏

leetcode-448-Find All Numbers Disappeared in an Array

1745
来自专栏desperate633

LintCode 跳跃游戏题目分析代码

1033
来自专栏Python小屋

Python版基于递归的冒泡排序算法

应读者要求,写个基于递归的冒泡排序算法代码,之前发过的排序算法代码请参考:Python版快速排序算法,Python版选择排序算法,Python版冒泡法排序算法。...

3103
来自专栏微信公众号:Java团长

谈谈Java中的语法糖

Java作为一种与平台无关的高级语言,当然也含有语法糖,这些语法糖并不被虚拟机所支持,在编译成字节码阶段就自动转换成简单常用语法。

1163
来自专栏bboysoul

1454: C语言实验题——三个数排序

描述:输入三个整数x,y,z,请把这三个数由小到大输出. 输入:输入数据包含3个整数x,y,z,分别用逗号隔开. 输出:输出由小到大排序后的结果,用空格隔开...

1733
来自专栏数据结构与算法

POJ1659 Frogs' Neighborhood(Havel–Hakimi定理)

\(\sum_{i = 1}^k d_i \leqslant k(k - 1) + \sum_{i = k + 1}^n min(d_i, k)\)

982
来自专栏Jackson0714

【.Net底层剖析】2.stfld指令-给对象的字段赋值

2926
来自专栏青玉伏案

窥探Swift之字符串(String)

  之前总结过Objective-C中的字符串《Objective-C精选字符串处理方法》,学习一门新语言怎么能少的了字符串呢。Swift中的String和Ob...

2336
来自专栏linux驱动个人学习

内存对齐的三条原则

1:数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员...

3624

扫码关注云+社区

领取腾讯云代金券