Description
牛客网 2018校招真题 排序次数
Solving Ideas
- 将数组a的元素拷贝到数组b
- 对数组b进行排序
- 对比数组b,统计数组a中已排序的元素个数
如:a = [2, 11, 5, 13, 16, 9, 10]
b = [2, 5, 9, 10, 11, 13, 16]
这时a中只有2, 5, 9, 10按照b中由小到大排序
Time complexity :
O
(
n
)
O(n)
O(n)
Space complexity :
O
(
n
)
O(n)
O(n)
Solution
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
/**
* @author wylu
*/
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String[] strs = br.readLine().split(" ");
int[] a = new int[n];
int[] b = new int[n];
for (int i = 0; i < n; i++) {
a[i] = Integer.parseInt(strs[i]);
b[i] = a[i];
}
Arrays.sort(b);
int count = 0;
for (int i = 0, j = 0; i < a.length; i++) {
if (a[i] == b[j]) {
count++;
j++;
}
}
System.out.println(a.length - count);
}
}