1、冒泡排序法:数组
把一个数组值由小到大排序:两两相比,只到全部数都比较完,数组是由一组由小到大的排序排序
int[] array = { 9, 2, 3, 5, 4, 6, 8, 7, 1 };
// 冒泡排序:{ 1, 2, 3,4,5,6,7,8,9};
for (int k = 0; k < array.length - 1; k++) {
for (int i = 0; i < array.length - 1 - k; i++) {
if (array[i] > array[i + 1]) {
int temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
}
}
}数据
2、选择排序法:拿第一个数与后面数相比,小的交换到前面的位置,只到全部数都比较完,数组是由一组由小到大的排序。查询
int[] array = { 9, 2, 3, 5, 4, 6, 8, 7, 1 };while
for (int y = 0; y < array.length - 1; y++) {
for (int i = y; i < array.length; i++) {
if (array[y] > array[i]) {
int temp = array[y];
array[y] = array[i];
array[i] = temp;
}
}
}return
2、折半(二分)查找数据法
要在一个有序的数据里查找一个数所在的位置能够利用对半查找,这样就能够把查询速度提升一半。
[1,2,3,4,5,6,7,8,9,11]
int c = 5; while (true) { int min = 0; int max = array.length - 1; int mid = (min + max) / 2; if (min > max) { return -1; } if (array[mid] == c) { return mid; } else { if (c > array[mid]) {// 在右边 min = min + 1; } else {// 在左边 max = max - 1; } return mid; } }