标签:
冒泡排序
比较相邻元素,如果第一个比第二个大,那么交换他们的位置;每对相邻元素进行依次比较,最后的元素应该是最大的。
int[] array = {10,13,12,8,11,6}; //数组从小到大排序 for (int i = 0; i < array.length - 1; i++) { for(int j = 0; j < array.length - i - 1;j ++){ if (array[j] > array[j + 1]) { a = array[j]; array[j] = array[j + 1]; array[j + 1] = a; } } } System.out.println(Arrays.toString(array));//[6, 8, 10, 11, 12, 13]
比较排序
依次取数组中元素,跟之后元素进行比较,如果大于之后的元素,那么交换他们的位置,通过这种方式进行比较过后的数组就是一个从小到大排序的数组。
//数组从小到大排序 for (int i = 0; i < array.length; i++) { for(int j = i + 1; j < array.length;j ++){ if(array[i] > array[j]){ a = array[i]; array[i] = array[j]; array[j] = a; } } } System.out.println(Arrays.toString(array));//[6, 8, 10, 11, 12, 13]
递归
函数自身调用自身的方式称之为递归。
public int[] sortArray(int[] array,int index){ int a = 0; if(index <= array.length - 1){ for(int i = index + 1; i < array.length;i ++){ if(array[index] > array[i]){ a = array[index]; array[index] = array[i]; array[i] = a; } } sortArray(array,index + 1); } return array; } System.out.println(sortArray(array,0))
二分查找
二分查找速度快,数据源需要有序排列
//查询11在数组中的下标 int queryParam = 11; Arrays.sort(array);//排序 int i = 0; int start = 0; int end = array.length - 1; while (start <= end) { i = (start + end) / 2; if (queryParam == array[i]) { System.out.println(i); break; } else if (queryParam < array[i]){ end = i; } else if (queryParam > array[i]){ start = i; } }
标签:
原文地址:http://my.oschina.net/haochenhh/blog/502406