LOFTER for ipad —— 让兴趣,更有趣

点击下载 关闭
选择排序
Zeiod 2022-06-20

选择排序:输入10个整型元素,对数组进行选择排序,输出从小到大排序后的新数组。

输入格式:输入整型,空格分隔。

输出格式:输入整型,空格分隔。

输入:9 8 5 0 4 2 1 5 7 1

输出:0 1 1 2 4 5 5 7 8 9


思路:简单选择排序,O(n²),一个不稳定的排序算法(数据排序不同,时间不一定)。原理是对n个数进行n-1次遍历。每一次将当前数列里面内最小值取出来放到已排序队列末尾。

代码:

#include<stdio.h>

void Swap(int* a,int* b) //通过两变量地址来交换两变量数值的函数Swap

{

    int tmp;

    tmp=*a;

    *a=*b;

    *b=tmp; 

}

void SelectSort(int arr[],int len)

{

    int i,j;

    for(i=0;i<=len-1;i++)

    {

        int min=i;//最小下标,从0开始,每遍历一轮最小下标的数组变量会放真正的最小数 

        for(j=i;j<len;j++)

        {

            if(arr[j]<arr[min])

            {

                min=j;

            }

        }

        Swap(&arr[i],&arr[min]);

    }

}

int main()

{

    int a[10],len=10,i;

    for(i=0;i<len;i++) //输入数组初始数据 

    {

        scanf("%d",&a[i]);

     }

    SelectSort(a,len);

    for(i=0;i<len;i++) //输出数组数据 

    {

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

    }

    return 0;

}

推荐文章
评论(0)
分享到
转载我的主页