1. 程式人生 > >冒泡演算法對動態陣列排序

冒泡演算法對動態陣列排序

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
void swap(int&,int&);
void sort(int* ,int n);
int main()
{
     int *array1 = 0, num, i; 
     printf("please input the number of element: "); 
     scanf("%d", &num); 


     // 申請動態陣列使用的記憶體塊 
     array1 = (int *)malloc(sizeof(int)*num); 
     if (array1 == 0)             // 記憶體申請失敗,提示退出 
     { 
         printf("out of memory,press any key to quit...\n"); 
         exit(0);             // 終止程式執行,返回作業系統 
     } 


     // 提示輸入num個數據 
      printf("please input %d elements: ", num); 
      for (i = 0; i < num; i++) 
         scanf("%d", &array1[i]); 


     // 輸出剛輸入的num個數據 
     printf("%d elements are: \n", num); 
     for (i = 0; i < num; i++) 
         printf("%d,", array1[i]); 
printf("\n");
sort(array1,num);
printf("the sorted number is :\n");
for (i = 0; i < num; i++) 
         printf("%3d", array1[i]); 
    getchar();
getchar();
return 0;
}
void swap(int &a, int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
void sort(int*a ,int n)
{
int i,j;
//int a[10]={10,7,12,9,45,5,43,8,9,3};
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(a[j+1]<a[j])
swap(a[j+1],a[j]);
}
}
}