您的位置:首页 > 其它

测试排序函数常用的三个数组:顺序、逆序和乱序

2012-05-10 08:46 381 查看
#include<iostream>
using namespace std;

const int INDEX_ZERO = 0;

//稀尔排序

void shell_sort( int *array, int size )
{
if (NULL == array)
{
throw;
}

else
{
int j;
int k;
int temp;

for (int d=size/2; d>0; d/=2)
{
for (j=d; j<size; ++j)
{
temp = array[j];
for (k=j-d; k>=0 && temp < array[k]; k-=d)
{
array[k+d] = array[k];
}
array[k+d] = temp;
}
}
}
}

//输出数组

template<typename TYPE>
void display( const TYPE *array, int size )
{
if (NULL == array)
{
throw;
}

else
{
for (int i=INDEX_ZERO; i<size; ++i)
{
cout << array[i] << " ";
}

cout << endl;
}
}

int main( void )
{
//用来测试排序函数常用的三个数组:顺序、逆序和乱序

//int array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};

//int array[] = {9, 8, 7, 6, 5, 4, 3, 2, 1};

int array[] = {7, 4, 1, 8, 2, 5, 9, 3, 6};
const int SIZE = sizeof (array) / sizeof (*array);

display( array, SIZE );
shell_sort( array, SIZE );
display( array, SIZE );

system( "pause" );
return EXIT_SUCCESS;
}

/*========
7 4 1 8 2 5 9 3 6
1 2 3 4 5 6 7 8 9
请按任意键继续. . .
==================*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐