常用排序算法之——选择排序(C语言+VC6.0平台)

选择排序是另一种经典排序算法,核心思想是:在一趟找最小(大)数的过程中,先假设待排数据中的第一个数据即为最小(大)数据,然后循环将其他数据与该数据比较,每次比较时若小于该数据则让新数据成为最小(大)数据。重复该过程即可。对于n个数据的排序问题,共需要进行n-1趟排序过程。

 #include<stdio.h>

void exchange(int *pa,int *pb)//交换两个数

{

         int temp;

         temp=*pa;

         *pa=*pb;

         *pb=temp;

}

void print_array(int array[],int size)//打印数组

{

         int i;

         for(i=0;i<size;i++)

                   printf("%d ",array[i]);

         printf("\n");

}

void select_sort(int data[],int size)//用选择排序方法对数据进行从小到大排序

{

         int i,j,min;

         for(i=0;i<size;i++)

         {

                   min=i;

                   for(j=i+1;j<size;j++)

                            if(data[min]>data[j])

                                     min=j;

                   if(data[min]!=data[i])

                            exchange(&data[min],&data[i]);

         }

}

int main(void)

{

         int data[10]={19,23,55,21,43,22,10,90,65,46};//产生数据

         print_array(data,10);//打印原始数据

         select_sort(data,10);//对数据排序

         print_array(data,10);//打印排序数据

}

posted @ 2015-05-19 14:39  pctech  阅读(629)  评论(0编辑  收藏  举报