
热爱技术
- 第一步 , 知其事 。
- 第二步 , 知其然 。
- 第三步,知其所以然。
- 第四步,周而复始。
- 第五步,融汇贯通 。
- 请走好每一步。
热爱生活:世上只有一种英雄主义,就是在认清生活真相之后依然热爱生活。
游山西村
- 莫笑农家腊酒浑 ,
- 丰年留客足鸡豚 。
- 山重水复疑无路 ,
- 柳暗花明又一村 。
- 箫鼓追随春社近 ,
- 衣冠简朴古风存 。
- 从今若许闲乘月 ,
- 拄杖无时夜叩门 。
热爱技术
热爱生活:世上只有一种英雄主义,就是在认清生活真相之后依然热爱生活。
游山西村
这里是 vite 搭建的 vue2, 路由使用 router,想要在项目里展示一个版本更新记录,这个更新记录是个 readem.md
文件,不想弄两套问题使用 md 直接在页面显示,样式好看。
效果展示:
npm i vite-plugin-vue-markdown -D
实现效果:
直接使用 easyexcel 注解即可实现:
public class InOutStockVo {
@ExcelIgnore
private Long warehouseId;
@ExcelProperty(index = 0, value = "仓库")
private String warehouseName;
@ExcelProperty(index = 1, value = "品牌")
private String brandName;
@ExcelProperty(index = 2, value = "物料分类")
private String productTypeName;
@ExcelProperty(index = 3, value = "物料编码")
private String productCode;
@ExcelProperty(index = 4, value = "物料名称")
private String productName;
@ExcelProperty(index = 5, value = "物料规格")
private String specsValue;
@ExcelProperty(index = 6, value = "批次")
private String batchNumber;
@ExcelProperty(index = 7, value = "单位")
private String unit;
@ExcelProperty(index = 8, value = {"期初库存", "库存数量"})
private BigDecimal beginStockAmount;
@ExcelProperty(index = 9, value = {"期初库存", "单价"})
private BigDecimal beginPrice;
@ExcelProperty(index = 10, value = {"期初库存", "总计金额"})
private BigDecimal beginTotalPrice;
@ExcelProperty(index = 11, value = {"入库", "入库数量"})
private BigDecimal entryTotalAmount;
@ExcelProperty(index = 12, value = {"入库", "入库金额"})
private BigDecimal entryTotalPrice;
@ExcelProperty(index = 13, value = {"出库", "出库数量"})
private BigDecimal outTotalAmount;
@ExcelProperty(index = 14, value = {"出库", "出库金额"})
private BigDecimal outTotalPrice;
@ExcelProperty(index = 15, value = {"期末库存", "库存数量"})
private BigDecimal endStockAmount;
@ExcelProperty(index = 16, value = {"期末库存", "单价"})
private BigDecimal endPrice;
@ExcelProperty(index = 17, value = {"期末库存", "总计金额"})
private BigDecimal endTotalPrice;
}
package learn.note.algorithm.sort.three;
import java.util.Arrays;
/**
* @author Wang WenLei
* @date 2025/7/30 17:29
* @since 1.0
*/
public class MergeSort {
public static void main(String[] args) {
int [] data = {5,4,3,2,1};
mergeSort(data);
Arrays.stream(data).forEach(System.out::print);
// 对数器
CompareMachineUtil.compare(MergeSort::mergeSort, null);
}
public static void mergeSort(int [] data) {
mergeSort(data,0,data.length-1);
}
public static void mergeSort(int [] data,int low,int high){
if (data == null || high - low < 1) {
return;
}
int middle = low + ((high - low) >> 1);
mergeSort(data,low,middle);
mergeSort(data,middle + 1, high);
// 合并
merge(data,low,middle,high);
}
private static void merge(int[] data, int low, int middle, int high) {
int[] tempArr = new int[high - low + 1];
int i = 0;
int p1 = low;
int p2 = middle + 1;
// 这里都需要等于,左边是从0开始到分界点。右边是从分界点+1开始到数组结束
// 边界都是闭区间,所以需要等于
while (p1 <= middle && p2 <= high) {
if (data[p1] < data[p2]) {
tempArr[i++] = data[p1++];
} else {
tempArr[i++] = data[p2++];
}
}
while (p1 <= middle) {
tempArr[i++] = data[p1++];
}
while (p2 <= high) {
tempArr[i++] = data[p2++];
}
for (i = 0 ; i < tempArr.length ; i++) {
data[low + i] = tempArr[i];
}
}
}
程序角度表述:
0位置本身有序,从1开始
从0-1,比较0、1位置的数大小,如果 0 比 1 位置数大交换
从0-2,逐个比较2&1、1&0位置的大小,直到前一个位置的数小停止
。。。
从0-n,逐个比较n&n-1、...、1&0位置大小,直到前一个位置的数小停止。
时间复杂度:O(n2)
例如:
1、2、3、4、...、n
2、4、6、8、... 2n
中间间隔一致的一组数,形成的数列称为等差数列
搞点精确语言:从第二项起,每项与其前一项之公差都相等
如果一个等差数列的首项记作 a1
,公差记作 d
,那么该等差数列第 n
项 an
的一般项为:
an=a1+(n−1)d
按自然数从1开始数:
从 1到n
中选择一个一个最小的数,放到第 1
位置上
从 2到n
中选择一个一个最小的数,放到第 2
位置上
从 n-1到n
中选择一个一个最小的数,放到第 n-1
位置上
从 n到n
中选一个最小的数,就是本身,放到 n
位置上
按程序数从0开始数:
从 0到n-1
中选择一个一个最小的数,放到第 0
位置上
从 1到n-1
中选择一个一个最小的数,放到第 1
位置上
从 n-2到n-1
中选择一个一个最小的数,放到第 n-2
位置上
从 n-1到n-1
中选一个最小的数,就是本身,放到 n-1
位置上
逐个两两比较,前面比后面大交换,直到n位置是最大值
重新逐个两两比较,前面比后面大交换,直到n-1位置是最大值
。。。
重新逐个两两比较,前面比后面大交换,直到2位置是最大值
只剩一个只自然最大,不用交换
package learn.note.algorithm.sort.three;
import java.util.Arrays;
/**
* @author Wang WenLei
* @date 2025/7/23 13:37
* @since 1.0
*/
public class BubbleSort {
public static void main(String[] args) {
int [] data = new int[]{1,7,3,11,8,5,10,2,4,9,6};
bubbleSort(data);
Arrays.stream(data).forEach(System.out::println);
}
private static void bubbleSort(int [] data) {
for (int i = 0; i < data.length; i++) {
for (int j = 0 ; j < data.length - 1 - i; j++) {
if (data[j] > data[j + 1]) {
swap(data,j,j + 1);
}
}
}
}
private static void swap(int [] data,int i,int j) {
int temp = data[i];
data[i] = data[j];
data[j] = temp;
}
}