关于希尔排序的一些问题
1、gap的获取课件里写的一般为2,如果碰到元素个数是5或者9这种 是不是要调整为能整除的数值5的话调整为1;9调整为3 这样去分组。
2、还有一个就是在排序中视频里写的还是按照直接插入排序去循环跟前一个元素比较,但是受限于i和k的值,其实每次直接插入排序的循环次数就1次,用以下代码得出结果也没问题吧
void sort_arr(char *p, int n)
{
int i=0,j=0,k=0,temp=0;
for(k = n/2; k>=1;k = k/2){
for(i = k; i< n; i++){
if(p[i] < p[i-k]){
temp = p[i-k];
p[i-k] = p[i];
p[i] = temp;
}
}
}
}
TRANSLATE with x
English
TRANSLATE with
Enable collaborative features and customize widget: Bing Webmaster Portal
源自:排序
1-6 shell排序
9
收起
正在回答 回答被采纳积分+1
1回答
物联网/嵌入式工程师
- 参与学习 394 人
- 提交作业 22954 份
- 解答问题 1164 个
行业热门,政策风口,人才缺口极大,现在入场时机正好! 上千人检验,数轮迭代的硬核知识体系,软硬件通吃 保姆式教学+简历指导+1V1模拟面试+3次内推,助力轻松就业!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星