选择排序算法(C语言实现)[通俗易懂]

选择排序算法(C语言实现)[通俗易懂]#include<stdio.h>voidchoice(int*a,intn){inti,j,temp;for(i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(a[i]>a[j]){…

大家好,又见面了,我是你们的朋友全栈君。

#include <stdio.h>
void choice(int *a,int n)
{
    int i,j,temp;
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(a[i]>a[j])
            {
                temp=a[i];
                a[i]=a[j];
                a[j]=temp;
            }
        }
    }
}
int main(int argc, char *argv[])
{
    int a[10]={2,4,7,1,6,9,8,3,0,5};
    int i;
    choice(a,10);
    for(i=0;i<10;i++)
        printf("%d  ",a[i]);

    printf("\n");
    return 0;
}

统一回复一下博友的问题:

首先说句抱歉的是,我这个只是上了裸代码。

这个程序就是选择排序算法。

引用选择排序算法百度百科

简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。

以下为简单选择排序的存储状态,其中大括号内为无序区,大括号外为有序序列:

初始序列:{2 4 7 1 6 9 8 3 0 5}   

第1趟:2与0交换:0{4 7 1 6 9 8 3 2 5}   

第2趟:0不动,4与1交换:0 1{7 4 6 9 8 3 2 5}   

第3趟:7与2交换:0 1 2{4 6 9 8 3 7 5}   

第4趟:4与3交换:0 1 2 3{6 9 8 4 7 5}   

第5趟:6与4交换:0 1 2 3 4{9 8 6 7 5}

第6趟:9与5交换:0 1 2 3 4 5{8 6 7 9}

第7趟:8与6交换:0 1 2 3 4 5 6{8 7 9}

第8趟:8与7交换:0 1 2 3 4 5 6 7{8 9}

第9趟:排序完成

 

冒泡排序可以查看点击,非常抱歉的是这个里面是冒泡排序的裸代码,查看代码其实可以体会到冒泡排序本质是:排序的数像水泡一样,依次比较,大的数往后移,最后大的数排在最后。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152984.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月25日 上午11:00
下一篇 2022年6月25日 上午11:16


相关推荐

  • 程序员成才的关键——内在兴趣和善于发现

    程序员成才的关键——内在兴趣和善于发现

    2021年8月29日
    51
  • sklearn库主要模块功能简介

    sklearn库主要模块功能简介数据科学系列:sklearn库主要模块功能简介01sklearn简介sklearn,全称scikit-learn,是python中的机器学习库,建立在numpy、scipy、matplotlib等数据科学包的基础之上,涵盖了机器学习中的样例数据、数据预处理、模型验证、特征选择、分类、回归、聚类、降维等几乎所有环节,功能十分强大,目前sklearn版本是0.23。与深度学习库存在pytorch、TensorFlow等多种框架可选不同,sklearn是python中传统机器学习的首选库,不存在其他竞争

    2022年10月18日
    6
  • idea 2021.8激活码-激活码分享

    (idea 2021.8激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月26日
    61
  • sysstat 使用

    sysstat 使用

    2021年8月13日
    58
  • 《善数者成:大数据改变中国》读书笔记3

    《善数者成:大数据改变中国》读书笔记3第八章撬动商业:新“规模经济”,数最懂你每一个消费者在消费的过程中留下数据,就会形成商业大数据。“”智慧门店”与天猫围绕新零售在新品首发、渠道管理、大数据赋能和线上线下全渠道融合等领域展开一揽子合作。向新零售转变,卖货层面是最直接的,其次是数据要打通。海澜之家采用RFID技术给2亿件衣服分配了各自的身份编码,进而实现了线上下单、线下发货,并在门店之间实现了数据共享互通,让一条条销售数据从“碎片”走向“整合”,然后又通过大数据分析,更好地分析和洞察消费者需求,及时调整经营策略,降低整体经营性投入,最终

    2022年8月30日
    12
  • 【10分钟精通Cursor】:全网最全面的使用教程,一篇让你开发如聊天般轻松

    【10分钟精通Cursor】:全网最全面的使用教程,一篇让你开发如聊天般轻松

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号