题目在此,关于排序的
https://www.nowcoder.com/questionTerminal/adc291e7e79f452c8b59243a5ce68d3a
我的代码:
import java.util.*; public class Main { public int[] paixu(int[] nums,int begin,int end){ if(nums.length==0) return null; int[] result = new int[nums.length]; for(int j=0;j<nums.length;j++){ int min = nums[0]; int index=0; for(int i=0;i<nums.length;i++){ if(nums[i]<min){ index=i; min = nums[i]; } } result[j]=min; nums[index]=Integer.MAX_VALUE; } return result; } public int panduan(int[] order,int[] bad){ int temp = 0; int sum = 0; for(int i=0;i<bad.length;i++){ if(bad[i]==order[temp]){ sum++; temp++; i++; while(temp<order.length&& i<bad.length ){ if(bad[i]==order[temp]){ sum++; temp++; i++; } else{ while(i<bad.length && bad[i]!=order[temp]){ i++; } } } break; } } return sum; } public Main() { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] nums = new int[n]; int[] nums2 = new int[n]; for(int i =0;i<nums.length;i++){ int temp = in.nextInt(); nums[i]=temp; nums2[i]=temp; } int[] jieguo =paixu(nums, 0, nums.length-1); System.out.println(nums.length-panduan(jieguo,nums2)); } public static void main(String[] args) { new Main(); } }
然后这是别人家的代码:
import java.util.*; public class Main { public Main() { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int[] arr =new int[n]; int[] sortArr =new int[n]; for(int i =0;i < n; i++){ arr[i] = scan.nextInt(); sortArr[i] = arr[i]; } Arrays.sort(sortArr); //这一行代替了我的那个paixu()方法! //下面这几行就代替了我的panduan()方法! int count = 0; int j = 0; for (int i = 0; i < n; i++) { if (arr[i] == sortArr[j]) { count++; j++; } } System.out.println(n - count); } public static void main(String[] args) { new Main(); } }
这一对比差距不小啊。。