【练习8-9】使用动态内存分配的方法实现例8-5的冒泡排序。
#include<stdio.h>
#include<stdlib.h>
int Bubble(int *p,int n);
int swap(int *p1,int *p2);
int main()
{
int *ptr,n,i;
i=0;
scanf("%d",&n);
if((ptr=(int *)malloc(n*sizeof(int)))==NULL){
printf("Not able to allocate memory.\\n");
exit(1);
}
for(i=0;i<n;i++){
scanf("%d",ptr+i);
}
Bubble(ptr,n);
for(i=0;i<n;i++){
printf("%d",*(ptr+i));
}
return 0;
}
int Bubble(int *p,int n){
int i,j;
for(i=1;i<n;i++){
for(j=0;j<n-i;j++){
if(*(p+j)>*(p+j+1))
swap(p+j,p+j+1);
}
}
}
int swap(int *p1,int *p2){
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
输入样例:8
8 7 6 5 4 3 2 1
输出结果:12345678



