您的位置:首页 > 其它

c 排序采用递归冒泡法

2013-06-24 22:47 99 查看
#include <stdio.h>
#include <stdlib.h>
void direct(int *array, int n)
{
int tmp;

if ( n > 1 ) {
direct( array, n-1);
if ( *(array+n-2) > *(array + n-1) ) {
tmp = *(array + n -2) ;
*(array + n -2) = *(array + n-1);
*(array + n- 1) = tmp;
}
}

}

void grub(int  *array , int n)
{
int i ;
for (i  = n; i > 0 ; i--)
direct (array, i);
}

int main(void)
{
int counter;
printf("please input the counter\n");
scanf("%d", &counter);
int array[counter+1];
int i;
printf("please input the array[%d]\n",counter);

for ( i = 0; i < counter+1; i++) {
*(array+i) = rand() % 100;
//      *(array+i) = random(0, 1000);
//       scanf("%d",array+i);  // you can interchange this for hand input
printf("array[%d] = %d ", i, *(array+i));
printf("\n");
}

printf (" you input array as following :\n");

for ( i = 0 ; i < counter; i++)
printf("%d\t",*( array+i));

printf ("\n");

grub( array, counter);

printf (" The sort after array:\n");

for (i = 0; i < counter; i++) {
printf("%d\t",*(array + i));
if (( (i+1) % 10  == 0) )
printf("\n");
}
printf( "\n");

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: