有趣的排序

题目:
度度熊有一个N个数的数组,他想将数组从小到大 排好序,但是萌萌的度度熊只会下面这个操作:
任取数组中的一个数然后将它放置在数组的最后一个位置。
问最少操作多少次可以使得数组从小到大有序?

解答人的思路是
在这里插入图片描述
上面出现的前提是每个数字只能移动一次,根据题意移动一次就可以排序成符合题意的答案,最重要的一句话就是检查有多少已经排好序的元素的个数
程序

import java.util.Arrays;
import java.util.Scanner;


public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int num =scan.nextInt();
		int []a = new int[num];
		int []sorta = new int[num];
		for(int i=0;i<num;i++) {
			a[i]=scan.nextInt();
			sorta[i]=a[i];
		}
		Arrays.sort(sorta);
		int count =0;
		int j=0;
		for(int i=0;i<num;i++) {
			if(a[i]==sorta[j]) {
				count++;
				j++;
			}
		}
		System.out.println(num-count);
	}
}
发布了213 篇原创文章 · 获赞 22 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_43113679/article/details/100897567