小摩有一个N个数的数组,他想将数组从小到大 排好序,但是萌萌的小摩只会下面这个操作:
任取数组中的一个数然后将它放置在数组的最后一个位置。
问最少操作多少次可以使得数组从小到大有序?
首先输入一个正整数N,接下来的一行输入N个整数。(N <= 50, 每个数的绝对值小于等于1000)
输出一行操作数
4 19 7 8 25
2
19放到最后,25放到最后,两步完成从小到大排序
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr =new int[n]; for(int i = 0;i<n;i++){ arr[i] = sc.nextInt(); } int min = Integer.MAX_VALUE; int count = 0; for(int i = 0;i<n;i++){ for(int j = i+1;j<n;j++){ if(arr[j] < arr[i]){ count++; min = arr[i] < min?arr[i]:min; break; } } } if(count == 0){ System.out.println(count); } else{ int k = n-1; while(k>0){ if(arr[k] > min && arr[k] > arr[k-1]){ count++; k--; } else break; } System.out.println(count); } } }