选择排序算法(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


相关推荐

  • 关于嵌入式高端ARM核心板设计风格优缺点分析 作者 gooogleman「建议收藏」

    关于嵌入式高端ARM核心板设计风格优缺点分析作者gooogleman

    2022年4月12日
    175
  • JavaScript RegExp对象

    JavaScript RegExp对象

    2021年12月14日
    43
  • BMP文件解析_图片分析

    BMP文件解析_图片分析BMP文件简介BMP(全称Bitmap)是Window操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。由于BMP文

    2025年6月16日
    6
  • css 重绘和回流

    css 重绘和回流浏览器渲染过程解析 HTML 生成 DOM 树 解析 CSS 生成 CSSOM 树将 DOM 树和 CSSOM 树结合 生成渲染树 RenderTree Layout 回流 根据生成的渲染树 进行回流 Layout 得到节点的几何信息 位置 大小 Painting 重绘 根据渲染树以及回流得到的几何信息 得到节点的绝对像素 Display 将像素发送给 GPU 展示在页面上 比如会在 GPU 将多个合成层合并为同一个层 并展示在页面中 而 css3 硬件加速的原理则是新建合成层 生成渲染树过程从 DOM 树的

    2026年3月18日
    2
  • Matlab 归一化函数premnmx

    Matlab 归一化函数premnmx函数目的是把数据处理成 1 1 之间 算法是 如 a 2 4 3 5 那么计算过程就是 2 2 2 5 2 1 1 2 4 2 5 2 1 1 3 0 6666 2 3 2 5 2 1 0 66662 5 2 5 2 1 1

    2026年3月19日
    2
  • 域名url转发怎么设置_url和域名

    域名url转发怎么设置_url和域名URL转发技术就是将该域名的网站访问请求,通过浏览器端技术,转向到另外一个网站。域名URL转发分为url显性转发和URL隐性转发这里以万网域名为例教你如何设置显性url转发和隐性URL转发。

    2022年10月18日
    7

发表回复

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

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