From c4da9d7c4b213539ae401e9e83841b081edc7e7a Mon Sep 17 00:00:00 2001 From: sheep Date: Thu, 2 Oct 2025 13:48:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E5=BA=8F=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/sheep/Main.java | 17 +++++ src/main/java/org/sheep/MinStack.java | 35 +++++++++ .../org/sheep/alg/ConversionOfNumber.java | 38 ++++++++++ src/main/java/org/sheep/alg/Sort.java | 71 +++++++++++++++++++ src/main/java/org/sheep/alg/Test.java | 44 ++++++++++++ 5 files changed, 205 insertions(+) create mode 100644 src/main/java/org/sheep/Main.java create mode 100644 src/main/java/org/sheep/MinStack.java create mode 100644 src/main/java/org/sheep/alg/ConversionOfNumber.java create mode 100644 src/main/java/org/sheep/alg/Sort.java create mode 100644 src/main/java/org/sheep/alg/Test.java diff --git a/src/main/java/org/sheep/Main.java b/src/main/java/org/sheep/Main.java new file mode 100644 index 0000000..358da7f --- /dev/null +++ b/src/main/java/org/sheep/Main.java @@ -0,0 +1,17 @@ +package org.sheep; + +//TIP To Run code, press or +// click the icon in the gutter. +public class Main { + public static void main(String[] args) { + //TIP Press with your caret at the highlighted text + // to see how IntelliJ IDEA suggests fixing it. + System.out.printf("Hello and welcome!"); + + for (int i = 1; i <= 5; i++) { + //TIP Press to start debugging your code. We have set one breakpoint + // for you, but you can always add more by pressing . + System.out.println("i = " + i); + } + } +} \ No newline at end of file diff --git a/src/main/java/org/sheep/MinStack.java b/src/main/java/org/sheep/MinStack.java new file mode 100644 index 0000000..a4c56df --- /dev/null +++ b/src/main/java/org/sheep/MinStack.java @@ -0,0 +1,35 @@ +package org.sheep; + +import java.util.Stack; + +public class MinStack { + private Stack stack; + private Stack minStack; + + public MinStack() { + stack = new Stack<>(); + minStack = new Stack<>(); + } + + public void push(int x) { + stack.push(x); + if (minStack.empty() || x < minStack.peek()) { + minStack.push(x); + } else { + minStack.push(minStack.peek()); + } + } + + public void pop() { + stack.pop(); + minStack.pop(); + } + + public int top() { + return stack.peek(); + } + + public int getMin() { + return minStack.peek(); + } +} diff --git a/src/main/java/org/sheep/alg/ConversionOfNumber.java b/src/main/java/org/sheep/alg/ConversionOfNumber.java new file mode 100644 index 0000000..06c7153 --- /dev/null +++ b/src/main/java/org/sheep/alg/ConversionOfNumber.java @@ -0,0 +1,38 @@ +package org.sheep.alg; + +/** + * 进制转换 + * @author sheep + */ +public class ConversionOfNumber { + public static void main(String[] args) { + // 定义二进制数 + int a = -0b1001; + System.out.println(a); + // 定义16进制数 + int b = 0x10; + System.out.println(b); + // 取反 + System.out.println(~a + 1); + // | & ^ + int c = 0b0001010; + int d = 0b0000110; + printBinary(c | d); + printBinary(c & d); + printBinary(c ^ d); + int e = -3; + System.out.println(Integer.toBinaryString(e >> 2)); + System.out.println(Integer.toBinaryString(e >>> 2)); + } + + /** + * 十进制转换二进制 + * @param num + */ + public static void printBinary(int num) { + for (int i = 31; i >= 0; i--) { + System.out.print((num & (1 << i)) == 0 ? "0" : "1" ); + } + System.out.println(); + } +} diff --git a/src/main/java/org/sheep/alg/Sort.java b/src/main/java/org/sheep/alg/Sort.java new file mode 100644 index 0000000..ee55de1 --- /dev/null +++ b/src/main/java/org/sheep/alg/Sort.java @@ -0,0 +1,71 @@ +package org.sheep.alg; + +import java.util.Arrays; + +/** + * 排序 + * @author sheep + */ +public class Sort { + int[] arr = {5,3,4,1,2}; + + public static void main(String[] args) { + Sort sort = new Sort(); + sort.insertSort(sort.arr); + System.out.println(Arrays.toString(sort.arr)); + } + + /** + * 交换数组中指定位置的两个数 + * @param arr + * @param i + * @param j + */ + private void swap(int[] arr, int i, int j) { + int temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } + + /** + * 选择排序 + */ + public void selectSort(int[] arr) { + if (arr == null || arr.length < 2) { return; } + for (int i = 0; i < arr.length; i++) { + for (int j = i + 1; j < arr.length; j++) { + if (arr[i] > arr[j]) { + swap(arr, i, j); + } + } + } + } + + /** + * 冒泡排序 + */ + public void bubbleSort(int[] arr) { + if (arr == null || arr.length < 2) { return; } + for (int i = 0; i < arr.length; i++) { + for (int j = 0; j < arr.length - i - 1; j++) { + if (arr[j] > arr[j + 1]) { + swap(arr, j, j + 1); + } + } + } + } + + /** + * 插入排序 + */ + public void insertSort(int[] arr) { + if (arr == null || arr.length < 2) { return; } + for (int i = 1; i < arr.length; i++) { + for (int j = i; j > 0; j--) { + if (arr[j] < arr[j - 1]) { + swap(arr, j, j - 1); + } + } + } + } +} diff --git a/src/main/java/org/sheep/alg/Test.java b/src/main/java/org/sheep/alg/Test.java new file mode 100644 index 0000000..3c28705 --- /dev/null +++ b/src/main/java/org/sheep/alg/Test.java @@ -0,0 +1,44 @@ +package org.sheep.alg; + +import java.util.Arrays; + +/** + * 测试 + * @author sheep + */ +public class Test { + + private static void swap(int[] arr, int i, int j) { + int temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } + + public static void main(String[] args) { + int[] arr = {5,3,4,1,2}; +// for (int i = 0; i < arr.length; i++) { +// for (int j = 0; j < arr.length - i -1; j++) { +// if (arr[j] > arr[j + 1]) { +// swap(arr, j, j + 1); +// } +// } +// } + +// for (int i = 0; i < arr.length; i++) { +// for (int j = i + 1; j < arr.length; j++) { +// if (arr[j] < arr[i]) { +// swap(arr, i, j); +// } +// } +// } + +// for (int i = 1; i < arr.length; i++) { +// for (int j = i; j > 0; j--) { +// if (arr[j] < arr[j - 1]) { +// swap(arr, j, j - 1); +// } +// } +// } + System.out.println(Arrays.toString(arr)); + } +}