ITfeng

 

排序---选择排序

选择排序的思路是:先假定一个数十最小的,后面的数与之比较,如果比它小,那么记录下标,替换最小值;依次往复,则排序完毕

选择排序的时间复杂度是o(n^2)

#include<stdio.h>
#include<stdlib.h>
#define N 100
int buffer[N];
void init_array(int a[],int n);
void print_array(int a[],int n);
void select_array(int a[],int n);

int main()
{
 init_array(buffer,N);
 printf("before sort\n");
 print_array(buffer,N);
 printf("affter sort\n");
 select_array(buffer,N);
 print_array(buffer,N); 
 
}
void init_array(int a[],int n)
{
 int i;
 for(i=0;i<n;i++)
  a[i]=rand()%1000;  
}
void print_array(int a[],int n)
{
 int i;
 for(i=0;i<n;i++)
  printf("%d\n",a[i]); 
}
void select_array(int a[],int n)
{ int min,i,j,index;
 for(i=0;i<n-1;i++)
 {
  min=a[i];
  for(j=i+1;j<n;j++)
  {
   if(a[j]<min)
   {
    min=a[j];
    index=j;
   }
  }
  if(min!=a[i])
  {
   a[index]=a[i];
   a[i]=min;
  }
 }  
 
}

posted on 2012-04-23 16:21  ITfeng  阅读(212)  评论(0编辑  收藏  举报

导航