Fri Apr 28 16:46:00 UTC 2023 inscode

上级 bbefe79f
run = "java algo/Select.java"
run = "java Main.java"
class Main {
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
algo.Bubble.sort(new int[] { 2, 4, 3, 5, 1, 6 });
algo.Select.sort(new int[] { 2, 4, 3, 5, 1, 6 });
algo.Heap.sort(new int[] { 2, 4, 3, 5, 1, 6 });
algo.Quick.sort(new int[] { 2, 4, 3, 5, 1, 6 });
}
}
package algo;
import java.util.Arrays;
public class Bubble {
public static void main(String[] args) {
Select.sort(new int[] { 2, 4, 3, 5, 1, 6 });
}
public static void sort(int[] nums) {
for (var i = 0; i < nums.length; i++) {
for (var j = 0; j < nums.length - i - 1; j++) {
if (nums[j] > nums[j + 1]) {
var t = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = t;
}
}
}
System.out.println(Arrays.toString(nums));
}
}
\ No newline at end of file
package algo;
import java.util.Arrays;
public class Heap {
public static void main(String[] args) {
Heap.sort(new int[] { 2, 4, 3, 5, 1, 6 });
}
public static void sort(int[] nums) {
for (var i = nums.length / 2 - 1; i >= 0; i--) {
heapify(nums, i, nums.length);
}
for (var i = nums.length - 1; i >= 0; i--) {
var t = nums[i];
nums[i] = nums[0];
nums[0] = t;
heapify(nums, 0, i);
}
System.out.println(Arrays.toString(nums));
}
public static void heapify(int[] nums, int root, int len) {
var child = root * 2 + 1;
if (root < len && child < len) {
if (child + 1 < len && nums[child] < nums[child + 1])
child++;
if (nums[root] < nums[child]) {
var t = nums[root];
nums[root] = nums[child];
nums[child] = t;
heapify(nums, child, len);
}
}
}
}
\ No newline at end of file
package algo;
import java.util.Arrays;
public class Quick {
public static void main(String[] args) {
Quick.sort(new int[] { 2, 4, 3, 5, 1, 6 });
}
public static void sort(int[] nums) {
partition(nums, 0, nums.length - 1);
System.out.println(Arrays.toString(nums));
}
public static void partition(int[] nums, int left, int right) {
if (left < right) {
int base = nums[left], i = left, j = right;
while (i < j) {
while (i < j && nums[j] >= base) {
j--;
}
if (i < j) {
nums[i] = nums[j];
}
while (i < j && nums[i] <= base) {
i++;
}
if (i < j) {
nums[j] = nums[i];
}
}
nums[i] = base;
partition(nums, left, i);
partition(nums, i + 1, right);
}
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册