网上有关“选择排序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语言”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
本文来自作者[wzjinhao]投稿,不代表金豪号立场,如若转载,请注明出处:https://wzjinhao.cn/jyan/202508-14664.html
评论列表(3条)
我是金豪号的签约作者“wzjinhao”
本文概览:网上有关“选择排序C语言”话题很是火热,小编也是针对选择排序C语言寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。#include &l...
文章不错《选择排序C语言》内容很有帮助