public class Algo {
private static void print(int num) {
for (int i = 31; i >= 0; i--) {
System.out.print((num & (1 << i)) == 0 ? "0" : "1");
}
System.out.println();
}
private static void printArr(int[] choose_sort) {
for (int i : choose_sort) {
System.out.print(i + " ");
}
System.out.println();
}
public static void swap(int[] arr, int m, int n) {
int temp = arr[m];
arr[m] = arr[n];
arr[n] = temp;
}
// 选择排序
public static void chooseSort(int[] arr) {
if (arr == null || arr.length == 1) {
return;
}
// 0 ~ N-1
// 1 ~ N-1
int size = arr.length;
for (int i = 0; i < size; i++) {
int minIndex = i;
for (int j = minIndex + 1; j < size; j++) {
minIndex = arr[minIndex] > arr[j] ? j : minIndex;
}
swap(arr, i, minIndex);
}
}
// 冒泡排序
private static void bubbleSort(int[] arr_data) {
if (arr_data == null || arr_data.length == 1) {
return;
}
// 0 ~ N-1
// 0 ~ N-2
int size = arr_data.length;
for (int i = size - 1; i >= 0; i--) {
for (int j = 0; j < i; j++) {
if (arr_data[j] > arr_data[j + 1]) {
swap(arr_data, j, j + 1);
}
}
}
}
// 插入排序
private static void insertSort(int[] arr_data) {
if (arr_data == null || arr_data.length == 1) {
return;
}
int size = arr_data.length;
for (int i = 1; i < size; i++) {
// while (i >= 0 && arr_data[i - 1] > arr_data[i]) {
// swap(arr_data, i, i - 1);
// i--;
// }
for (int pre = i - 1; pre >= 0 && arr_data[pre] > arr_data[pre + 1]; pre--) {
swap(arr_data, pre , pre + 1);
}
}
}
public static void main(String[] args) {
// print(1);
// print(32);
int[] arr_data = {1, 4, 64, 32, 7, 5, 3, 2, 1};
printArr(arr_data);
// chooseSort(arr_data);
// bubbleSort(arr_data);
insertSort(arr_data);
printArr(arr_data);
}
}
算法与数据结构
最新推荐文章于 2024-07-15 22:10:26 发布