1.冒泡排序
public void bubbleSort(int []sz) {
for (int i = 0; i < sz.length - 1; i++) {
for (int j = 0; j < sz.length - 1 - i; j++) {
if (sz[j] > sz[j + 1]) {
sz[j] = sz[j] ^ sz[j + 1];
sz[j + 1] = sz[j] ^ sz[j + 1];
sz[j] = sz[j] ^ sz[j + 1];
}
}
}
}
2.冒泡排序优化版
public void bubbleSortyh(int []sz) {
for (int i = 0; i < sz.length - 1; i++) {
boolean flag = true;
for (int j = 0; j < sz.length - 1 - i; j++) {
if (sz[j] > sz[j + 1]) {
sz[j] = sz[j] ^ sz[j + 1];
sz[j + 1] = sz[j] ^ sz[j + 1];
sz[j] = sz[j] ^ sz[j + 1];
flag = false;
}
}
if (flag) {
break;
}
}
}
3.选择排序
public void selectSort(int []sz) {
for (int i = 0; i < sz.length - 1; i++) {
int min = i;
for (int j = i + 1; j < sz.length; j++) {
if (sz[min] > sz[j]) {
min = j;
}
}
if (min != i){
sz[min] = sz[min] ^ sz[i];
sz[i] = sz[min] ^ sz[i];
sz[min] = sz[min] ^ sz[i];
}
}
}
4.二分查找
public int binarySearch(int []sz, int nr) {
int begin = 0;
int end = sz.length - 1;
while(begin <= end) {
int mid = (end + begin) / 2;
if (sz[mid] == nr) {
return mid;
}else if (sz[mid] < nr) {
begin = mid + 1;
}else {
end = mid - 1;
}
}
return -1;
}