冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
冒泡排序算法的运作如下:
冒泡排序的过程图:
代码:
public class BubbleSort { public static int[] bubbleSort(int[] array) { for(int i = 0;i < array.length;i++) { for(int j = 0; j < array.length-i-1;j++) { if(array[j] > array[j+1]) { int temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } } return array; } public static void main(String[] args) { int[] array = {7,3,9,5,6,8,1}; bubbleSort(array); } }
打印结果:
第1躺排序
3 7 5 6 8 1 9
第2躺排序
3 5 6 7 1 8 9
第3躺排序
3 5 6 1 7 8 9
第4躺排序
3 5 1 6 7 8 9
第5躺排序
3 1 5 6 7 8 9
第6躺排序
1 3 5 6 7 8 9
第7躺排序
1 3 5 6 7 8 9
代码:
public class BinarySearch { public static int binarySearch(int[] array, int value) { int low = 0; int high = array.length-1; int middle = 0; while(low <= high) { middle = (low+high)/2; if(array[middle] == value) { return middle; } if(value < array[middle]) { high = middle - 1; } if(value > array[middle]) { low = middle + 1; } } return -1; } public static void main(String[] args) { int[] array = {7,3,9,5,6,8,1}; int[] array1 = BubbleSort.bubbleSort(array); int index = binarySearch(array1,1); System.out.println("所在的位置:"+index); } }
第1躺排序
3 7 5 6 8 1 9
第2躺排序
3 5 6 7 1 8 9
第3躺排序
3 5 6 1 7 8 9
第4躺排序
3 5 1 6 7 8 9
第5躺排序
3 1 5 6 7 8 9
第6躺排序
1 3 5 6 7 8 9
第7躺排序
1 3 5 6 7 8 9
1 3 5 6 $$ 7 8 9
1 3 $$ 5 6 7 8 9
1 $$ 3 5 6 7 8 9
所在的位置:0