NewCoder(牛客)题集--Four

NewCoder(牛客)题集--Four

解:错

解析:二分查找针对的是有序表。

NewCoder(牛客)题集--Four
A.O(N*log(N))

B.O(N)

C.O(log(N))

D.O(N^2)

解:C

解析:二分法每次比较会去掉一半的数据,也就是说比较次数为n,数据为m个则2^n>=m,m=log(N),时间复杂度为O(log(N))

 

解:4

解析:

NewCoder(牛客)题集--Four

NewCoder(牛客)题集--Four

A.选择排序

B.快速排序

C.归并排序

D.希尔排序

解:C

解析:不稳定排序:一堆希尔快选

NewCoder(牛客)题集--Four

解:正确

解析: 最外层的 { ... } 会初始化 a[] 即第一维。而 {1} 会初始化 a[0][] 由于只有一个元素,后续元素会默认置 0 。其他同理。

NewCoder(牛客)题集--Four

解:20, 70, 30, 50

解析:10个数首先和中间值20比较,58比20***择右边,右边5个数选择中间值70,58比70小,选择左边,左边两个数中间值30进行比较,58比30***择右边,右边一个数50,58比50大,没有找到

NewCoder(牛客)题集--Four

解:3

解析:

基数排序分配和回收的趟数只与元素长度有关。

基数排序是通过“分配”和“收集”过程来实现排序。

1)首先根据个位数值(只看个位)来排序:

253 674 924 345 627

2)再看十位(只看十位数值大小)来排序:

924 627 345 253 674

3)最后看百位:

253 345 627 674 924

所以最后的结果排序为 253 345 627 674 924,需要3趟。

NewCoder(牛客)题集--Four

解:s+1,len-2

解析:*s指向字符串的第一个,一次操作后将字符串首尾两个字符交换。一次交换后*s指向下一个字符,同时待处理字符串长度减2

NewCoder(牛客)题集--Four

解:出错

解析:char *p1="123" 声明了个字符串指针p1,指向字符串“ 123 ”,此时的“ 123 ”存放在常量区,并没有在拷贝到栈中,所以不能修改,如修改p1[0] = '2'就是错误的。

NewCoder(牛客)题集--Four

解:9

解析:第一次分组8个分成4组 两两一组 比4次 第二次分组为上面比较下来的4个还是两两分组 分2组 第三次分组就剩下两个直接比较出了最大 这时一共比较了4+2+1=7次 接着拿第三次分组中与最大比较的那个数分别和 之前与最大那个数比较过的数比较 分别是第一次分组有一个 第二次分组有一个 7+2=9