排序算法之选择排序

来源:互联网 发布:mac自带系统监控工具 编辑:程序博客网 时间:2024/06/05 09:11

选择排序算法比较简单,主要是步骤:

①选择 n 个数字中最大的,和最后一个数字交换。这样最大的那个数字就在最后一位。

②选择n-1个数字选择最大的,和倒数第二个数字交换,这样确定倒数第二位。

③一直循环,直到所有的排序完成。


这个程序比较简单,分成两个部分:

①寻找数组 a 中前 n 个数字的中的最大那个元素下标。

②交换下标和 数组 n 的位置。

③ n--循环,直到n=1。


程序实现

#include<stdio.h>int FindMaxPos(int a[],int n){    int i;    int max = a[0];    int pos = 0;    for(i=0;i<n;i++)    {        if(max<a[i])        {            max = a[i];            pos = i;        }    }    return pos;}void select(int a[],int n){    while(n>1)    {         int pos = FindMaxPos(a,n);         int temp = a[pos];         a[pos] = a[n-1];         a[n-1] = temp;         n--;    }}int main(){    int i;    int a[10]={23,1,45,22,13,10,0,4,56,18};    select(a,10);    for(i =0;i<11;i++)        printf("%d ",a[i]);    return 0;}


原创粉丝点击