C语言复习---选择法排序

选择排序也是一种简单直观的排序算法

它的工作原理很容易理解:
初始时在序列中找到最小(大)元素,放到序列的起始位置作为已排序序列;
然后,再从剩余未排序元素中继续寻找最小(大)元素,放到已排序序列的末尾。
以此类推,直到所有元素均排序完毕。

选择排序与冒泡排序的区别

冒泡排序通过依次交换相邻两个顺序不合法的元素位置,从而将当前最小(大)元素放到合适的位置;
而选择排序每遍历一次都记住了当前最小(大)元素的位置,最后仅需一次交换操作即可将其放到合适的位置。

例题:对10个整数进行选择排序

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    int a[10] = { 0 };
    int minIndex, temp;

    //初始化数据
    for (int i = 0; i < 10;i++)
    {
        a[i] = rand() % 100;
    }

    for (int i = 0; i < 10; i++)
        printf("%d ", a[i]);
    printf("\n");

    //进行选择排序
    for (int i = 0; i < 9;i++)
    {
        minIndex = i;
        for (int j = i + 1; j < 10;j++)
            if (a[minIndex]>a[j])
                minIndex = j;
        if (minIndex != i)
        {
            temp = a[i];
            a[i] = a[minIndex];
            a[minIndex]=temp;
        }
    }
    //输出结果
    for (int i = 0; i < 10; i++)
        printf("%d ", a[i]);

    system("pause");
    return 0;
}

 

posted @ 2018-07-30 11:10  山上有风景  阅读(436)  评论(0编辑  收藏  举报