提交 1929f623 编写于 作者: S Steven

add demo test class

上级 12fe97ad
package com.example.mqrocketmq;
import java.util.concurrent.atomic.AtomicInteger;
/**
* @author Steven
* @Date 2022/11/16 16:57
*/
public class MainTest {
public static AtomicInteger num = new AtomicInteger(0);
public static void main(String[] args) throws InterruptedException {
Runnable runnable = () -> {
for (long i = 0; i < 1000000000; i++) {
num.getAndAdd(1);
}
System.out.println(Thread.currentThread().getName() + "执行结束!");
};
Thread t1 = new Thread(runnable);
Thread t2 = new Thread(runnable);
t1.start();
t2.start();
Thread.sleep(1000);
System.out.println("num = " + num);
}
}
package com.example.mqrocketmq;
/**
* @author Steven
* @Date 2022/11/18 14:03
*/
public class TestSort {
public static void main(String[] args) {
// int[] a = {2, 4, 6, 8, 3, 6};
int[] a = {5, 9, 1, 6, 3, 2};
doSomething(a, 0, a.length - 1);
for (int i = 0; i <= a.length -1; i++) {
System.out.println(a[i]);
}
}
private static void doSomething(int[] a, int start, int end) {
if (start < end) {
// 大的向前移动 返回移动数据数量,也就是当前最比最后一个点大的下标
int p = core(a, start, end);
// 从0开始排序 到正中间位置区分
doSomething(a, start, p-1);
//
doSomething(a, p+1, end);
}
}
/**
*
* @param a
* @param start
* @param end
* @return
*/
private static int core(int[] a, int start, int end) {
int x = a[end];
// 自增
int i = start;
for (int j = start; j <= end -1; j++) {
// 从头到尾遍历, 比最后一个大的就交换,向前移动 i <= j
if (a[j] >= x) {
swap(a, i, j);// 大的向前移动,依次放第一第二第三
i++;
}
}
/**
* 最后一位
*/
swap(a, i, end);
return i;
}
/**
* 从前放到后
* @param a
* @param i
* @param j
*/
private static void swap(int[] a, int i, int j) {
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册