排序算法
This commit is contained in:
17
src/main/java/org/sheep/Main.java
Normal file
17
src/main/java/org/sheep/Main.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package org.sheep;
|
||||||
|
|
||||||
|
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
|
||||||
|
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
|
||||||
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
//TIP Press <shortcut actionId="ShowIntentionActions"/> 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 <shortcut actionId="Debug"/> to start debugging your code. We have set one <icon src="AllIcons.Debugger.Db_set_breakpoint"/> breakpoint
|
||||||
|
// for you, but you can always add more by pressing <shortcut actionId="ToggleLineBreakpoint"/>.
|
||||||
|
System.out.println("i = " + i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
35
src/main/java/org/sheep/MinStack.java
Normal file
35
src/main/java/org/sheep/MinStack.java
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
package org.sheep;
|
||||||
|
|
||||||
|
import java.util.Stack;
|
||||||
|
|
||||||
|
public class MinStack {
|
||||||
|
private Stack<Integer> stack;
|
||||||
|
private Stack<Integer> 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
38
src/main/java/org/sheep/alg/ConversionOfNumber.java
Normal file
38
src/main/java/org/sheep/alg/ConversionOfNumber.java
Normal file
@@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
71
src/main/java/org/sheep/alg/Sort.java
Normal file
71
src/main/java/org/sheep/alg/Sort.java
Normal file
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
44
src/main/java/org/sheep/alg/Test.java
Normal file
44
src/main/java/org/sheep/alg/Test.java
Normal file
@@ -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));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user