首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

shell排序算法,该怎么处理

2012-04-02 
shell排序算法shell排序算法void shellsort(int v[], int n){int gap, i, j, tempfor(gap n/2 gap 0

shell排序算法
shell排序算法
void shellsort(int v[], int n)
{
int gap, i, j, temp;

for(gap = n/2; gap > 0; gap /= 2)
for(i = gap; i < n; i++)
for(j=i-gap; j>=0; && v[j]>v[j+gap]; j-=gap)
{
temp = v[j];
v[j] = v[j+gap];
v[j+gap] = temp;
}
}

for(j=i-gap; j>=0; && v[j]>v[j+gap]; j-=gap) 这里我始终没能理解, j-=gap 的话, 那j就为负数了 ?  
  还帮我讲下shell算法的整体结构思想。

[解决办法]
shell排序的整体结构思想如下
希尔排序法
[解决办法]

C/C++ code
for(j=i-gap; j>=0; && v[j]>v[j+gap]; j-=gap)//你这儿肯定有问题,都三个分号了,另外j-=gap是负数怕什么,就不执行下面的了,重新循环而已
[解决办法]
探讨
shell排序算法
void shellsort(int v[], int n)
{
int gap, i, j, temp;

for(gap = n/2; gap > 0; gap /= 2)
for(i = gap; i < n; i++)
for(j=i-gap; j>=0; &amp;&amp; v[j]>v[j+gap]; j-=gap)
{
temp = v[j];……

热点排行
Bad Request.