简单写一下选择排序算法

#include<stdio.h>
#include<stdlib.h>
#define M 10
//随机生成数组中的元素
void input(int *s, int size)
{
 int i;
 for(i=0; i<size; i++)
 {
  s[i]=rand()%50;
 } 
}
//选择排序算法 ,每次选择最小的依次放在 a[0],a[1]...
void arrsort(int *a, int size)
{
 int i, j, p, t;
 for(i=0; i<size-1; i++)
 {
  p=i;
  for(j=i+1; j<size; j++)
  {
   if(a[p]>a[j])  p=j;//用p标记每次最小的元素的位置
  }
  if(p!=i)
  {
   t=a[i];
   a[i]=a[p];
   a[p]=t;
  }
 }
}
//打印函数
void output(int *a, int size)
{
 int i;
 for(i=0; i<size; i++)
 {
  printf("%d ", *(a+i));
 }
 printf(" ");
}
int main()
{
 int arr[M];
 input(arr,M);
 output(arr,M);
 arrsort(arr,M);
 output(arr,M);
 return 0;
}

原文地址:https://www.cnblogs.com/wdc123/p/3367954.html