温故而知新:复习C语言的冒泡排序算法_Andy_Issta_新浪博客

#define N 10
int TestArray[10] = {14,47,9,45,2,8,23,5,27,11};

void PrintArray(int *a)
{
 int i=0;
 for (i=0;i<N;i++)
 {
  printf("%d  ",*(a+i));
 }
 printf("\n");
}


void BubbleSort(int *a)
{
 int i,j,temp,flag;
 for(i=0;i<N;i++)
 {
  flag = 0x00;       
  for(j=1;j<N;j++)
  {
   if(a[j-1]>a[j])
   {
    temp=a[j-1];
    a[j-1]=a[j];
    a[j]=temp;
    flag = 0x01;
   }
  }

  if (flag != 0x01)
  {
   break;
  }
  else
  {
   PrintArray(a);
  }
 }

}

///

int _tmain(int argc, _TCHAR* argv[])
{
 PrintArray(TestArray);
 printf("\n");
 BubbleSort(TestArray);
 printf("\n");
 PrintArray(TestArray);

 return 0;
}

温故而知新:复习C语言的冒泡排序算法_Andy_Issta_新浪博客