插入排序与希尔排序的-创新互联

#include"iostream"

成都创新互联公司一直通过网站建设和网站营销帮助企业获得更多客户资源。 以"深度挖掘,量身打造,注重实效"的一站式服务,以做网站、成都网站制作、移动互联产品、成都营销网站建设服务为核心业务。10余年网站制作的经验,使用新网站建设技术,全新开发出的标准网站,不但价格便宜而且实用、灵活,特别适合中小公司网站制作。网站管理系统简单易用,维护方便,您可以完全操作网站资料,是中小公司快速网站建设的选择。

using namespace std;

int insertsort(int a[],int size){//直接插入排序

for (int i = 0; i < size - 1; i++){

int temp = a[i+1];//保留要插入的点

int k = i;//k为要插入的位置

if (temp

while (k >= 0 && temp < a[k]){

a[k + 1] = a[k];

k--;

}

a[k + 1] = temp;

}

}

return 0;

}

int ShellSort(int a[],int size){//xi

int gap = size / 3 + 1;

do{

    gap = gap / 3 + 1;//划步长

    for (int i = 0; i//分组。

for (int j =i+gap ; j//该插入的数

                        //如果要插入的数比前面小,就找找该插入哪个位置,否则不变。

if (a[j] < a[j - gap]){//这时候要插入的数为a[j];

int temp = a[j];//先保留a[j]的值

int k = j - gap;//保留要插入的位置

while (k >= 0 && a[k] > temp){

                                    //只要比较的位置不越界,且小于要插入的数。

a[k+gap] = a[k];//不停的将比较过的后移。

k = k - gap;

}

a[k+gap] = temp;//最后将要插入的值放入要插入的位置k

}

}

    }

     } while (gap>1);//采用do while这种形式是为了把gap=1;只操作一次

return 0;

}

int main(){

int a[5] = { 1,5,6,2,7 };

insertsort(a, 5);

for (int i = 0; i < 5; i++){

cout << a[i] << " ";

}

ShellSort(a, 5);

for (int i = 0; i < 5; i++){

cout << a[i] << " ";

}

system("pause");

return 0;

}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文题目:插入排序与希尔排序的-创新互联
转载来于:http://cdiso.cn/article/dpcsic.html

其他资讯