64,682
社区成员
发帖
与我相关
我的任务
分享
#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]);
}
}
}
void shellSort(int ia[],int size)
{
int iNum=size,temp;
while(iNum>1)
{
iNum=(iNum+1)/2;
for(int i=iNum;i<size;++i)
if(ia[i]<ia[i-iNum])
{
temp=ia[i];
int k=i-iNum;
for (;k>=0 && ia[k]>temp;k-=iNum)
ia[k+iNum]=ia[k];
ia[k+iNum]=temp;
}
}
}
#include<stdlib.h>
#include<iostream>
#include<ctime>
using namespace std;
void shellSort(int ia[], int size) {
int iNum = size, temp;
while (iNum > 1) {
iNum = (iNum + 1) / 2;
for (int i = iNum; i < size; ++i)
if (ia[i] < ia[i - iNum]) {
temp = ia[i];
int k = i - iNum;
for (; k >= 0 && ia[k] > temp; k -= iNum)
ia[k + iNum] = ia[k];
ia[k + iNum] = temp;
}
}
}
int main(int argc, char **argv) {
int a[12] = { 1, 2, 4, 5, 5, 234, 1, 23, 56, 4, 765, 7 };
shellSort(a, 12);
for (int i = 0; i < 12; i++)
cout << a[i] << endl;
//for()
}