我的希尔排序前两个数据顺序偶尔有问题,但我没找到问题啊

来源:2-7 更多关于O(n^2)排序算法的思考

慕UI4716311

2019-01-17

图片描述
template
void ShellSort(T arr[],int n) {
int i,index;
int interval=n/2;
while(interval>0) {
for(i=0; i<n-interval; i++) {
for(index=i; index+interval<n; index+=interval) {
if(arr[index]>arr[index+interval]) {
swap(arr[index],arr[index+interval]);
}
}

	}
	interval/=2;
}

}

写回答

1回答

liuyubobobo

2019-01-17

你的内层循环不是插入排序,而是冒泡排序:)


我在课程的补充代码中提供了一个希尔排序的源码,有兴趣可以参考:)

传送门:https://github.com/liuyubobobo/Play-with-Algorithms/blob/master/03-Sorting-Advance/Course%20Code%20(C%2B%2B)/Optional-03-ShellSort-MergeSort-and-QuickSort-Comparision/ShellSort.h


加油:)

2
8
慕UI4716311
回复
liuyubobobo
谢谢您
2019-01-18
共8条回复

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程