每日一练 7

在这里插入图片描述在这里插入图片描述正确答案: 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 类型不能转换成任何其它数据类型。

在这里插入图片描述正确答案: D 你的答案: A (错误)

笨小孩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协议添加链接描述
添加链接描述添加链接描述

影分身是一种在忍者世界中常见的特殊技能,也是《火影忍者》中的一个重要元素。每个人都可以通过影分身术创造出许多个分身,这些分身可以同时进行各种活动。类比于影分身术,CSDN每日一练就像是一个模拟的技能训练场。每天CSDN都会发布一道题目供广大程序员参与练习。 参与影分身CSND每日一练的好处有许多。首先,通过每日一练,程序员们可以不断提高自己的编程能力。就像影分身可以通过快速反应和高效操作来增强自己的实力一样,参与每日一练可以锻炼程序员的编程思维和解决问题的能力。 其次,每日一练还可以丰富程序员的知识储备。每道题目都是经过精心挑选和设计的,涵盖了各种常见的编程知识点和技巧。通过解答这些问题,程序员们能够接触到各种新的问题和方法,扩展自己的知识领域。 另外,参与每日一练还可以增强程序员的交流与学习能力。在每道题目下方,CSDN提供了评论区供程序员们交流和讨论。程序员们可以在这里分享自己的解题思路和方法,互相学习和进步。这不仅能够提高解题能力,还能够拓宽视野,了解不同的编程思维和技术。 综上所述,影分身CSND每日一练就像是一个虚拟的技能训练场,可以帮助程序员们不断提升自己的编程能力,丰富知识储备,增强交流与学习能力。参与其中,每个程序员都能像影分身一样变得更加强大。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值