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

时间:2022-12-26 16:17:32

选择排序是另一种经典排序算法,核心思想是:在一趟找最小(大)数的过程中,先假设待排数据中的第一个数据即为最小(大)数据,然后循环将其他数据与该数据比较,每次比较时若小于该数据则让新数据成为最小(大)数据。重复该过程即可。对于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);//打印排序数据

}