正确答案: C 你的答案: A (错误)
牛客7774081号
快速排序,当数组顺序或倒序时,每次划分都包含n-1 元素和一个0元素时,划分不对称
O(n^2)
发表于 2017-09-04 21:24:59
回复(0)
白起丶
快速排序本来是冒泡排序的优化,因为冒泡排序每次只能确定一个数据的最终位置,如果待排序数据已有序时,快速排序会退化成冒泡排序。
举个例子,如果带排序数据为1,2,3,4,5,6,7.
快速排序假设以第一个数据为中轴值,小于1的排左边大于1的排右边,但是因为该数据有序,故每次对于待排数据只减少了一个值,时间复杂度退化为O(n^2)
发表于 2020-06-22 18:28:43
正确答案: B 你的答案: C (错误)
Mayday1995
答案错了,归并排序空间复杂度是O(1)
发表于 2020-03-02 09:36:38
正确答案: B 你的答案: D (错误)
解析
A:插入排序平均时间复杂度为O(n^2),是稳定排序,A错
B:归并排序平均时间复杂度为O(nlogn),是稳定排序,B对
C:堆排序平均时间复杂度为O(nlogn),不是稳定排序,C错
D:快速排序平均时间复杂度为O(nlogn),不是稳定排序,D错
小客
不稳定的算法:快(快速排序)、些(希尔排序)、选(选择排序)、队(堆排序)
平均时间复杂度为O(nlog2n):快速排序、归并排序、堆排序
发表于 2019-09-26 14:33:43
回复(0)
正确答案: B 你的答案: B (正确)
解析
解析:
归并排序代码比选择插入排序更复杂,前者空间复杂度是O(n),后者是O(1)。但是前者时间复杂度是O(nlogn),后者是O(n2)。所以B正确。
正确答案: C 你的答案: B (错误)
hancy
1.选择排序是每次选择未排序子列中最大(最小)的放到最后,显然4不是最值,所以A不对;
2.冒泡排序是相邻两两比较,把最大的顶上去,显然边上两个元素不是最值,所以B也不对;
3.希尔排序是先分组,然后针对组内采取插入排序,如果是希尔排序,那么9和15颠倒,20和-1也应该颠倒,所以D也不对;
排除下来选C。
插入排序是从第二项开始与前面每一项比较,如果小于那一项,则插入那一项前面,C中第二项9比15小,所以放到15前面。
发表于 2017-08-16 18:19:15
回复(3)
正确答案: D 你的答案: B (错误)
解析
答案选择D.
首先,我们了解一下快速排序的原理:先在序列中选一个基准数,用它把整个序列进行排序。
排序后,保证基准数左边的数都不大于它,基准数右边的数都不小于它。
整个序列就被分割为两个子区间,再分别对两个子区间排序。
我们都知道,快速排序的时间复杂度平均为。
由原理我们得知,快速排序在序列已经有序的情况下进行,需要寻找比它大和比它小的2个数,而它的 左边/右边 已经没有了比它 大/小 的数了。
因此每个数都会被检索n次,时间复杂度就被卡到了。
回到题目:
A、B、C三个选项的序列都不是有序的,快速排序的时间复杂度为。
D选项的序列已经是有序的了,因此它快速排序的复杂度为。
故答案为:D
正确答案: C 你的答案: B (错误)
正确答案: C 你的答案: B (错误)
解析
选C。
A选项起泡算法:相邻元素两两比较,一个元素大于右侧相邻元素交换位置,否则位置不变。
一趟排序为:46,56,38,40,79,84
B选项直接插入:每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。
一趟排序为:38,40,46,79,56,84
C选项快速:挑选一个基准元素,大于基准元素的放在其右边,小于基准元素的放在其左边,从而拆分为两部分,以此类推直到不可拆分为止。
以源数据第一个元素46为基准,采用双边循环法设置left和right两个指针指向数组最左和最右两端,从右指针开始,如果大于或等于基准元素则指针向左移动,如果小于基准元素则停止。转向left指针向右移动如果小于或等于基准元素则继续向右移动,如果大于基准元素则停止。交换两指针元素后,右指针继续上述操作比较,直到最后把基准元素和两指针重复元素交换位置。第一趟排序结束得出如下排序,所以C正确。
一趟排序为:40,38,46,56,79,84
D选项2-路归并:将一个数组分成两个数组,分别对两个数组进行排序,循环第一步,直到划分出来的“小数组”只包含一个元素,只有一个元素的数组默认为已经排好序
一趟排序为:46,56,79合并;38,40,84合并
快速排序
添加链接描述
添加链接描述
这个讲得不错
参考那个思想
直接插入
添加链接描述
添加链接描述
添加链接描述
添加链接描述
添加链接描述
添加链接描述
添加链接描述
添加链接描述
正确答案: D 你的答案: A (错误)
Forrestcloud
堆归选基与初始序列无关 快选希堆排序不稳定
发表于 2017-06-25 11:15:31
正确答案: D 你的答案: C (错误)
ご一粒沙尘/ty
答案:D
A:堆排序每趟总能选出一个最大值或者最小值位于根节点。
B:冒泡排序总是两两比较选出一个最小值位于数组前面。
C:快排选出的枢轴在一趟排序中就位于了它最终的位置
D:直接插入排序不一定会位于最终的位置,因为不确定***入的元素对于前面的元素是否产生影响。
发表于 2017-05-05 14:12:23
正确答案: B 你的答案: A (错误)
解析
boolean 类型不能转换成任何其它数据类型。
笨小孩ovo头像
笨小孩ovo
s1是指向常量池中的字符串变量,s2是指向堆的对象
“==” 用于比较基本类型时,比较的是值,比如Integer,用于比较引用类型时比较的是引用指向的地址
equals()比较的是对象中的内容
发表于 2021-12-20 10:53:32
java基本类型
添加链接描述
添加链接描述
解析
B:false
==判断的是对象引用地址是否相同,
1
2
3
4
String str=new String(“hello”);
这句话new了一个新的String对象,所以地址与"hello"字符串常量的地址不同,答案为false
如果判断字符串是否相等应给用str.equals(“hello”)方法
正确答案: B 你的答案: C (错误)
然醉为梦丶
看了几个评论,你们会就好好回答,不会就别复制别人错误答案耽误别人好吧? 复制的效率System.arraycopy>clone>Arrays.copyOf>for循环,这个有兴趣自己测试一下就知道了。这里面在System类源码中给出了arraycopy的方法,是native方法,也就是本地方法,肯定是最快的。而Arrays.copyOf(注意是Arrays类,不是Array)的实现,在源码中是调用System.copyOf的,多了一个步骤,肯定就不是最快的。前面几个说System.copyOf的不要看,System类底层根本没有这个方法,自己看看源码就全知道了。
发表于 2017-07-10 20:34:16
正确答案: A 你的答案: B (错误)
解析
选c
a选项linkedlist类是实现了List接口,而不是继承
b选项AbstractSet类实现Set接口
c选项HashSet继承 AbstractSet类,同时也实现set
d选项WeakMap是js里面的玩意儿吧,,不太懂
正确答案: A B C D 你的答案: D (错误)
wangzhe0417头像
wangzhe0417
stream结尾都是字节流,reader和writer结尾都是字符流 两者的区别就是读写的时候一个是按字节读写,一个是按字符。 实际使用通常差不多。 在读写文件需要对内容按行处理,比如比较特定字符,处理某一行数据的时候一般会选择字符流。 只是读写文件,和文件内容无关的,一般选择字节流。
编辑于 2017-03-23 19:04:17
正确答案: A B 你的答案: C (错误)
解析
答案:AB
Servlet过滤器的配置包括两部分:
第一部分是过滤器在Web应用中的定义,由元素表示,包括和两个必需的子元素
第二部分是过滤器映射的定义,由元素表示,可以将一个过滤器映射到一个或者多个Servlet或JSP文件,也可以采用url-pattern将过滤器映射到任意特征的URL。
阐禅
05-06 16:13 2楼
事务的隔离级别有:未提交读,提交读,可重复读,串行化四种隔离级别。 数据库多个事务同时执行时可能造成事务的一致性问题:脏读,不可重复读,幻读; 提交读可以解决脏读的问题:脏读就是线程A修改一个数据,没有提交,线程B读取了这个修改的数据之后线程A回滚,线程B读取到的数据就变成了脏数据。 可重复读可以解决脏读和不可重复度的问题,不可重复读就是事务A多次读取一个数据,事务B在A读取的过程中进行了修改,导致事务A多次读取到的数据不一致。 串行化可以同时解决者三个问题,幻读就是事务A对一个表进行读取,事务B在A读取的时候增减或者删除数据,导致事务A读取到的数据并不一致。
4 0
链接:https://www.nowcoder.com/questionTerminal/52a263d312094cedb4914df9b66b7b57
来源:牛客网
是小毛吖
本人就用自己的大白话讲一讲,欢迎批评指正。
面向过程:把一个功能的每一步按照执行的先后顺序写出来,然后依次执行;
面向对象:就是把功能相似的东西放在一起,构成一个对象。以对象为核心,操作的实体就是对象。还有不得不提的就是OO的三个重要特性:封装 继承 多态
个人在平时学习中,感觉理解面向对象的概念真的很重要。
面向对象的重要性:可以提高代码的复用性。例如继承,可以把n个子类共同的特征提取出来,放进父类中,减少了代码冗余,提高复用性;隐藏具体代码的实现,通过封装,将具体实现隐藏,只提供一个对外的接口。
发表于 2017-03-20 15:40
http协议添加链接描述
添加链接描述添加链接描述