一、位运算
public static void print(int num) {
for(int i = 31 ; i >= 0 ; i--) {
System.out.println((num & (1 << i)) == 0 ? "0":"1");
}
}
public static void main(String args[]) {
print(10);
print(~10);
print(1);
print(10 | 1);
print(10 & 1);
print(10 ^ 1);
}
二、简单排序
1、选择排序
public static void selectSort(int[] arr) {
if(arr == null || arr.length < 2) {
return;
}
int N = arr.length;
for(int i = 0 ; i < N;i++) {
int minValueIndex = i;
for(int j = i + 1;j < N ; j++) {
minValueIndex = arr[j] < arr[minValueIndex] ? j : minValueIndex;
}
swap(arr,i,minValueIndex);
}
}
private static void swap(int[] arr, int i, int minValueIndex) {
int temp = arr[i];
arr[i] = arr[minValueIndex];
arr[minValueIndex] = temp;
}
2、冒泡排序
public static void bubbleSort(int[] arr) {
if(arr == null || arr.length < 2) {
return;
}
int N = arr.length;
for(int end = N - 1 ; end >= 0 ; end--) {
for(int second = 1 ; second <= end ; second++) {
if(arr[second - 1] > arr[second]) {
swap(arr,second - 1,second);
}
}
}
}
3、插入排序
public static void insertSort(int[] arr) {
if(arr == null || arr.length < 2) {
return;
}
int N = arr.length;
for(int end = 1 ; end < N ; end++) {
for(int pre = end - 1 ; pre >= 0 && arr[pre] > arr[pre + 1] ; pre--) {
swap(arr,pre,pre+1);
}
}
}