一、冒泡排序法:
把一个数组值由小到大排序:两两相比,只到所有数都比较完,数组是由一组由小到大的排序
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;
}
}
}
二、选择排序法:拿第一个数与后面数相比,小的交换到前面的位置,只到所有数都比较完,数组是由一组由小到大的排序。
int[] array = { 9, 2, 3, 5, 4, 6, 8, 7, 1 };
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;
}
}
}
二、折半(二分)查找数据法
要在一个有序的数据里查找一个数所在的位置可以利用对半查找,这样就可以把查询速度提高一半。
[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;
}
}