注册 登录
编程论坛 VC++/MFC

请问这种是不是标记位方法排序

geshuan 发布于 2012-06-20 10:49, 366 次点击
#include <stdio.h>
void bubble_sort(int *arr,int n)
{
 int i,j,f;
 int tmp;

 for(i = 0;i < n-1;i++)
 {
     f=1;
  for(j = 0;j < n - i - 1;j++)
  {
   if(arr[j] > arr[j+1])
   {
    tmp = arr[j];
    arr[j] = arr[j+1];
    arr[j + 1] = tmp;
    f=0;
   }
  }
  if(1==f)   
  {
                  printf("排序的趟数为:%d \n",i);
                  break;

              }
 }
   return;
}

void print_array(int *arr,int n)
{
 int i;
 
 for(i = 0;i < n;i++)
  printf("%d\t",arr[i]);
 printf("\n");
}

#define N 10

int main()
{
 int i;
 int arr[N];

 printf("Enter the elements of the array.\n");

 for(i = 0;i < N;i++)
  scanf("%d",&arr[i]);

 printf("Original array:\n");
 print_array(arr,N);

 bubble_sort(arr,N);
 
 printf("After bubble sort:\n");
 print_array(arr,N);
bubble_sort(arr,N);
 return 0;
}
0 回复
1