选择排序C语言

网上有关“选择排序C语言”话题很是火热,小编也是针对选择排序C语言寻找了一些与之相关的一些信息进行分析 ,如果能碰巧解决你现在面临的问题 ,希望能够帮助到您 。

#include <stdio.h>

main()

{

int s[10],t,i,j,x;

printf("input 10 numbers:\n");

for(t=0;t<10;t++)

scanf("%d",&s[t]);

for(i=0;i<9;i++)

for(j=0;j<9-i;j++)

if(s[j]>s[j+1])

{t=s[j];s[j]=s[j+1];s[j+1]=t;}

printf("the result is:\n ");

for(j=0;j<10;j++)

printf("%d",s[j]);

printf("\n");

}

c语言 编写实现选择法对n个整数按升序排列的函数

选择法的算法:

假设需要对10个数进行排序,那么首先找出10个数里面的最小数,并和这个10个数的第一个(下标0)交换位置 ,剩下9个数(这9个数都比刚才选出来那个数大),再选出这9个数中的最小的数,和第二个位置的数(下标1)交换 ,于是还剩8个数(这8个数都比刚才选出来的大)..

依次类推,当还剩两个数时,选出两个数的最小者放在第9个位置(下标8) ,于是就只剩下一个数了 。这个数已经在最后一位(下标9),不用再选择了。所以10个数排序,一共需要选择9次(n个数排序就需要选择n-1次)。

求C语言大神解释选择排序法!每一行for什么意思啊 ,k=i,k=j,是什么意思啊?

#include<stdio.h>

int?main()

{?void?sort(int?array[],int?n);

int?a[100],n,i;

scanf("%d",&n);

for(i=0;?i<n;?i++)

scanf("%d",&a[i]);

sort(a,n);

printf("the?sorted?array:\n");

for(i=0;?i<n;?i++)

printf("%5d",a[i]);

printf("\n");

return?0;

}

void?sort(int?a[],int?n)

{?int?i,j,k,t;

for(i=0;?i<n-1;?i++)

{?k=i;

for(j=i+1;?j<n;?j++)

if(a[j]<a[k])

k=j;

t=a[k];

a[k]=a[i];

a[i]=t;

}

}

这是选择排序吧 ,k=i是初始化k指向i的位置 ,表示初始化i位置的值最小

在下一层循环中,如果j位置的值有比k位置的值小的,那么就让k=j ,这样就得到了k位置的值在i+1到n的范围内是最小的,然后交换k位置与i位置的值,即可得到i位置存储i到n之间最小的值 。

关于“选择排序C语言 ”这个话题的介绍 ,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[书白]投稿,不代表吾尔凌立场,如若转载,请注明出处:https://kino520.cn/zhis/202508-11622.html

(9)
书白的头像书白签约作者

文章推荐

发表回复

作者才能评论

评论列表(3条)

  • 书白的头像
    书白 2025年08月12日

    我是吾尔凌的签约作者“书白”

  • 书白
    书白 2025年08月12日

    本文概览:网上有关“选择排序C语言”话题很是火热,小编也是针对选择排序C语言寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。#include &l...

  • 书白
    用户081209 2025年08月12日

    文章不错《选择排序C语言》内容很有帮助