java常見面試題演算法
阿新 • • 發佈:2018-11-25
包括:氣泡排序,快速排序,快速查詢:
import java.util.Arrays; public class SortAndFind { public static void bubbleSort(int[] array) { int i,j,temp; int count = array.length; for(i=count; i>0; i--) { for(j=0; j < i-1; j++) { if(array[j] > array[j+1]) { temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } } } public static int fastFind(int[] array, int find, int head, int trail) { int middle = (head + trail)/2 ; if(head >= trail) return -1; if(find == array[middle]) { return middle; } else if(find < array[middle]) { return fastFind(array,find, head, middle-1); } else { return fastFind(array,find, middle+1, trail); } } public static void fastSort(int[] array, int head, int trail) { int temp = array[head],middle=head; int i=head, j=trail; Boolean flag = false; while(i < j){ if(flag==false) { if(array[j] < temp) { array[i] = array[j]; middle = j; flag = true; } else { j--; } } else { if(array[i] > temp) { array[j] = array[i]; middle = i; flag = false; } else { i++; } } } if(middle != head || middle != trail) array[middle] = temp; if(head < middle) fastSort(array, head, middle - 1); if(middle < trail) fastSort(array, middle + 1, trail); } public static void main(String[] args) { int[] array = {5,3,6,3,7,8,9,1,2}; System.out.println("count:" + array.length); System.out.println(Arrays.toString(array)); // bubbleSort(array); fastSort(array, 0, array.length-1); System.out.println("return:"+ fastFind(array, 5, 0, array.length-1)); System.out.println(Arrays.toString(array)); } }