美文网首页
排序——选择排序法

排序——选择排序法

作者: 果仁在哪儿 | 来源:发表于2020-11-24 22:45 被阅读0次

选择排序法

选择排序法也算是枚举法的应用,就是反复从未排序的数列中取出最小的元素,加入到另一个数列中,最后的结果即为已排序的数列。选择排序法可使用两种方式排序,即在所有的数据中,若从大到小排序,则将最大值放入第一个位置;若从小到大排序,则将最大值放入最后一个位置。例如,一开始在所有数据中挑选一个最小项放在第一个位置(假设是从小到大排序),再从第二项开始挑选一个最小项放在第二个位置,以此重复,直到完成排序为止。

演示

原始值:55,23,87,62,16
第一次扫描:先找到该数列中最小值,然后与数列中第一个元素交换
16,23,87,62,55
第二次扫描:从第二项开始查找,除第一项外找到此数列中的最小值,再与第二项元素交换位置
16,23,87,62,55
第三次扫描:从第三项开始查找
16,23,55,62,87
第四次扫描:从第四项开始查找
16,23,55,62,87

程序范例

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

void select(int *);
void showdata(int *);

int main()
{
    int data[8] = {55,23,87,62,16,34,65,25}
    printf("before sort: ");
    showdata(data);
    printf("************************************");
    select(data);
    printf("after sort: ");
    showdata(data);

    return 0;
}

void showdata(int *)
{
    int i;
    for (i=0;i<8;i++)
        printf("%3d",data[i]);
    printf("\n");
}

void select(int *)
{
    int i, j, tmp;
    for(i=0;i<7;i++)
    {
        for(j=1;j<8;j++)
        {
            if(data[i]>data[j])
            {
                tmp = data[i];
                data[i] = data[j];
                data[j] = tmp;
            }
        }
        showdata(data);
    }
    printf("\n");
}

相关文章

  • 各种排序方法

    冒泡排序法 选择排序法 链表排序法 qsort()函数排序法

  • 排序算法

    排序算法分类 排序算法常用主要有:冒泡排序法、快速排序法、选择排序法、插入排序法、堆排序法、归并排序法等几种。 ...

  • iOS常见算法

    升序算法:用冒泡排序法 选择排序法 快速排序

  • 排序算法总结

    选择排序法 插入排序法 冒泡排序法 归并排序法 自顶向下 自底向上 快速排序法 单路快速排序法 双路快速排序法 三...

  • js 常见排序算法(快速排序,选择排序等)

    快速排序法 选择排序 插入排序 冒泡排序

  • php实现几种常见的排序方法

    1. 冒泡排序法: 2. 选择排序法: 3.插入排序法: 4.快速排序法:

  • 常用的排序算法

    1. 冒泡排序: 2.快速排序法 3.插入排序法 4.选择排序法 5.归并排序法

  • 算法-选择排序

    算 法:选择排序算法时间复杂度: 选择排序算法概述 选择排序伪代码 选择排序实现 选择排序算法概述 排序算法有许...

  • JavaScript算法入门--排序--冒泡排序

    一般排序的常用方法有:冒泡法、插入法、选择法、快速排序、归并排序、桶排序、希尔排序、堆排序、基数排序、外部排序等。...

  • JavaScript算法入门--排序--插入排序

    一般排序的常用方法有:冒泡法、插入法、选择法、快速排序、归并排序、桶排序、希尔排序、堆排序、基数排序、外部排序等。...

网友评论

      本文标题:排序——选择排序法

      本文链接:https://www.haomeiwen.com/subject/jovwiktx.html