目录
1 对10万个数字的数组进行快速排序的方法,写出来
答案:
用快排,不要用冒泡,快排10万数据大概用1s,冒泡需要29s;
public void quirtSort(int arr[],int low,int high){
int l=low;
int h=high;
int jz=arr[low];
for(int mm1:arr){
System.out.println("rensheng "+mm1);
}
while(l<h){
while(l<h&&arr[h]>=jz){
h--;
}
if(l<h){
arr[l]=arr[h];
arr[h]=-10000;
l++;
for(int mm:arr){
System.out.print(mm+"#######");
}
System.out.println("");
}
while(l<h&&arr[l]<=jz){
l++;
}
if(l<h){
arr[h]=arr[l];
arr[l]=-1111;
for(int mm:arr){
System.out.print(mm+"%%%%%%%");
}
System.out.println("");
h--;
}
}
arr[l]=jz;
if(l-1>low){
quirtSort(arr,low,l-1);
}
if(h+1<high){
quirtSort(arr,h+1,high);
}
System.out.println("dijici");
for(int mm:arr){
System.out.print(mm+"-----");
}
}
快排的思想,是选择一个数作为基准,一般是选择数组的第一个数字。然后先从右向左遍历,遇到小于基准的,把值换到左边,
然后再从左边开始遍历,遇到大于基准的数字,将值换到右边,然后继续从右向左遍历。
一直循环,一直到左下标等于右下标的时候,一轮结束。
递归,采用分而治之的思想,继续重复,我理解了2天才搞明白,不明白可以私信
2 数据库事务的隔离级别
下面这篇文字解释的很透彻,此处不再赘述
https://blog.youkuaiyun.com/l1394049664/article/details/81814090
3 什么是脏读 幻读 不可重复读
4 spring 事务的传播特性
答:
序号 | 事务传播行为类型 | 当前没有事务 | 当前有事务 |
1 | PROPAGATION_REQUIRED | 新建事务 | 加入到这个事务中 |
2 | PROPAGATION_REQUIRES_NEW | 新建事务 | 把当前事务挂起 新建事务 |
3 | PROPAGATION_SUPPORTS | 以非事务方式执行。 | 加入到这个事务中 |
4 | PROPAGATION_NOT_SUPPORTED | 以非事务方式执行操作, | 把当前事务挂起 ,自己不用事务 |
5 | PROPAGATION_MANDATORY | 就抛出异常。 | 加入到这个事务中 |
6 | PROPAGATION_NEVER | 以非事务方式执行, | 抛出异常。 |
7 | PROPAGATION_NESTED | 新建事务 | 如果当前存在事务,则在嵌套事务内执行。 |
PROPAGATION_NESTED和PROPAGATION_REQUIRED 容易混淆,
也就是说, 最容易弄混淆的其实是 PROPAGATION_REQUIRES_NEW 和 PROPAGATION_NESTED, 那么这两种方式又有何区别呢? 我简单的翻译一下 Juergen Hoeller 的话 :
PROPAGATION_REQUIRES_NEW 启动一个新的, 不依赖于环境的 "内部" 事务. 这个事务将被完全 commited 或 rolled back 而不依赖于外部事务, 它拥有自己的隔离范围, 自己的锁, 等等. 当内部事务开始执行时, 外部事务将被挂起, 内务事务结束时, 外部事务将继续执行.
另一方面, PROPAGATION_NESTED 开始一个 "嵌套的" 事务, 它是已经存在事务的一个真正的子事务. 潜套事务开始执行时, 它将取得一个 savepoint. 如果这个嵌套事务失败, 我们将回滚到此 savepoint. 潜套事务是外部事务的一部分, 只有外部事务结束后它才会被提交.
由此可见, PROPAGATION_REQUIRES_NEW 和 PROPAGATION_NESTED 的最大区别在于, PROPAGATION_REQUIRES_NEW 完全是一个新的事务, 而 PROPAGATION_NESTED 则是外部事务的子事务, 如果外部事务 commit, 潜套事务也会被 commit, 这个规则同样适用于 roll back.
5 springcloud服务治理,如何进行
6 分布式事务如何解决
7 集合相关。 HashMap如何实现快速排序
LinkedList可以排序吗?
常用的Collections下的方法有哪些,举几个例子