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

希尔排序有关问题出在哪里

2012-06-12 
希尔排序问题出在哪里?各位大侠好,帮忙看下我写的这个希尔排序,错在什么地方,谢谢?C/C++ code#include st

希尔排序问题出在哪里?
各位大侠好,帮忙看下我写的这个希尔排序,错在什么地方,谢谢?

C/C++ code
#include "stdafx.h"#include<iostream>using namespace std;const int SIZE=10;void shellSort(int ia[],int size);int _tmain(int argc, _TCHAR* argv[]){    int temp,j;    int ia[SIZE]={8,6,1,7,9,2,5,3,4,0};    //int ia[SIZE]={49,38,65,97,76,13,27,49};    shellSort(ia,8);    for (int i=0;i<SIZE;++i)        cout<<ia[i]<<" ";    cout<<endl;    system("pause");    return 0;}void shellSort(int ia[],int size){    int iNum=size;    while(iNum>1)    {        iNum=(iNum+1)/2;        for(int i=0;i<size-iNum;++i)        {            if (ia[i]>ia[i+iNum])                    swap(ia[i],ia[i+iNum]);        }    }}


[解决办法]
少了一层循环,应该是缺少了内层循环,也就是没有插入排序过程。
[解决办法]
你有10个元素,这里应该改成这样吧:

shellSort(ia,10); //8改成10

热点排行