内部排序(三)冒泡法和选择排序法

这是一类藉助交换进行排序的方法。其中最简单的就是冒泡法和选择排序法。

冒泡法:如果数组的长度是n,那么总共需要n-1趟比较。第 i 趟比较需比较 n-i 次。

选择法:每次选择最小的元素,把它放在最前面的位置,依次往下走。


#include<stdio.h>
#include<stdlib.h>
#define len 12

void maopao_sort( int d[] )
{
  int i,j,t;
  for(i=0;i<len-1;i++)
	  for(j=0;j<len-i-1;j++)
          if( d[j]>d[j+1])
		  {
		     t = d[j];
			 d[j] = d[j+1];
			 d[j+1] = t;
		  }
}

void xuanzhe_sort( int d[] )
{
  int i,j,t,min;
  for(i=0;i<len;i++)
  {
	 min = i;
     for(j=i+1;j<len;j++)
		 if( d[j] < d[min] )
             min = j;
     if(min!=i)
	 {
      t = d[i];
      d[i] = d[min];
      d[min] = t;
	 }
  }
}



int main()
{  
	int d[len] = {49,38,65,97,76,13,27,49,85,11,23,47};
	
	//maopao_sort(d);
	xuanzhe_sort(d);

    for(int k=0;k<len;k++)
     printf("%d\n",d[k]);
	return 0;
}


你可能感兴趣的:(内部排序(三)冒泡法和选择排序法)