日期:2014-05-20 浏览次数:20739 次
public class Test { public static void main(String[] args) { int[] array = { 5, 2, 6, 4, 3, 1, 8, 10, 9, 7 }; for (int i = 0; i < array.length; i++) { int flag = (i + 1) % 2; int tmp = array[i]; int point = i; for (int j = i; j < array.length; j++) { if (flag != 0) { if (array[j] > tmp) { tmp = array[j]; point = j; } } else { if (array[j] < tmp) { tmp = array[j]; point = j; } } } if (i != point) { array[i] = array[i] ^ array[point]; array[point] = array[i] ^ array[point]; array[i] = array[i] ^ array[point]; } } System.out.println(Arrays.toString(array)); } }
------解决方案--------------------
学习啊,好厉害
------解决方案--------------------
package com.cn.sort; public class FindLastTwo { public static void main(String[] args) { int[] a = new int[]{9,10,2,1}; int lastTwoNum = findLastTwo(a); System.out.println(lastTwoNum); } //时间复杂度为O(n) private static int findLastTwo(int[] a) { int min = Integer.MAX_VALUE; int lastTwo = Integer.MAX_VALUE; if (a.length >= 2) { if (a[0] < a[1]) { min = a[0]; lastTwo = a[1]; } else { min = a[1]; lastTwo = a[0]; } } else { return Integer.MIN_VALUE; } for (int i = 2; i < a.length; i++) { if (a[i] < min) { lastTwo = min; min = a[i]; } else if (a[i] < lastTwo) { lastTwo = a[i]; } } if (min <= lastTwo) { return lastTwo; } else { return min; } } }
------解决方案--------------------
学习了
------解决方案--------------------
冒个泡
------解决方案--------------------
顶一下
------解决方案--------------------
牛人啊~
------解决方案--------------------
学习了
------解决方案--------------------
冒泡的精髓呀,学习了
------解决方案--------------------