前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >什么是简单选择排序?

什么是简单选择排序?

作者头像
跋扈洋
发布2022-12-03 09:43:42
4740
发布2022-12-03 09:43:42
举报
文章被收录于专栏:物联网知识物联网知识

介绍

概念

简单选择排序的基本思想是每一趟在后面n-i+1个待排序元素中选取关键字最小的元素,作为有序子序列的第i个元素,直到n-1趟做完。

在待排序数组中选出最小的(或最大)的与第一个位置的数据交换 然后在剩下的待排序数组中找出最小(或最大)的与第二个位置的数据交换,以此类推,直到第n-1个元素。

简单选择排序可以说是冒泡排序的一种改版,它不再两两比较出较小数就进行交换,而是每次遍历比较当前数的后面所有数,最后再把最小的数和当前数进行交换。

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

选择排序和冒泡排序虽然都是每一次选出一个最值放在有序子序列中,但二者亦有区别。冒泡排序在选择最值元素的时候 ,每次比较都有可能进行交换,当逆序的时候,一次排序就可能交换n-1回,但选择排序在选择最值元素时,只进行比较,只有对当次待比较的元素全比较完后,才进行一次交换,交换次数更少。

实现

代码语言:javascript
复制
#include <stdio.h>
#include <windows.h>
#include <stdint.h>
void Simple_select_sort(int a[],int size);
int main()
{
    int k;
    int num[9]={9,8,7,4,6,5,1,2,3}; 
    int sortsize=sizeof(num)/sizeof(num[0]);
    Simple_select_sort(num,sortsize);
    for(k=0;k<sortsize;k++)
    printf("\n%d",num[k]);
    system("pause");
    return 0;
}

void Simple_select_sort(int a[],int size)
{
    int i,j,min_value,temporary;
    for(i=0;i<size;i++)
    {
        min_value=i;
    for(j=i+1;j<size;j++)
    {
        if(a[j]<a[min_value])
        min_value= j;
    }
    temporary=a[i];
    a[i]=a[min_value];
    a[min_value]=temporary;
    }
}

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 物联网知识 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
    • 概念
      • 选择排序和冒泡排序的区别
      • 实现
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档