简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。
#include <stdio.h>
/* 冒泡法排序 */
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void select(int *arr, int len)
{
int i,j,index;
for(i=0;i<len-1;i++){
index = i;
for(j=i+1;j<len;j++){
if(arr[index] > arr[j]){
index = j;
}
}
if(index != i){
swap(&arr[index],&arr[i]);
}
}
}
int main()
{
int arr[7] = {6,43,21,1,23,5,34};
int i,len;
len = sizeof(arr)/sizeof(int);
select(arr,len);
for(i=0;i<len;i++){
printf("%d\n",arr[i]);
}
printf("Hello World!");
return 0;
}