请大家帮我想想,用选择法对10个整数排序(从小到大)。

作者&投稿:承娜 (若有异议请与网页底部的电邮联系)
用选择法对10个整数按由大到小的顺序排序。~

选择法的原理是将每一个元素与他后面的元素分别比较,如果有比他大的,则交换,所以有2重循环,第一重是参加比较的元素,第二重是参加比较的元素分别与后面(这个记住,是他后面的元素,关键是后面二字)的元素分别比较
void sort(int x[],int n
{ int i,j,k,t;/*元素i,j,k,t,分别代表什么?*/
for (i=0;i<n-1;i++)/*这个for循环是控制比较的元素的下标,当i=0时,x[0]参加比较,他的范围是素组里面的所有元素,但是到最后一个的时候,他后面没有元素了,就不用比较了,即数组有n-1个元素,那么他的范围就是0~n-2*/
{k=i;//存储i的值,防止ide值被改变,因为此时i的值不能被改变
for (j=i+1;j<n;j++)/*这就是前面说的后面,j=i+1,就是表示从i后面的第一个元素开始比较,这个循环就是将前面循环的中x[i]后面的每一个元素都与x[i]做比较,比如当i=0是,这个循环j的范围就是x[0]的后面所有元素,就是x[1]~x[n-1],*/
if (x[j]>x[k])k=j;//如果后面一个比前面一个大,注意,此时的k=i,令k=j,作为后面交换的下标
if(k!=i)//如果前面条件不成立,就是后面一个不比前面的大,那么k的值还是i,即k=i;
{t=x[i];x[i]=x[k];x[k]=t;}//交换
}
}
这样就可以理解了,假设数组有n个元素,那么当:
i=0,最多要比较n-1次
i=1;最多比较n-2次
i=2;最多比较n-3次
......
i=n-2,最多比较1次,楼主可以自己去算算,选择法最多要比较多少次,这个问题是考试和面试中经常问到的问题,祝你进步!

# include
void main()
{
int i,j,min,temp,a[11];
for(i=1;i<11;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=1; i<11;i++)
{
min=i;
for(j=i+1;j<11;j++)
if(a[i]>a[j])
{min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;}
}
for(i=1;i<11;i++)
printf("%d
",a[i]);
}

希望对你有助
不会可追问

首先要理解,这里是对a[1]~a[10] 排序,a[0]是一个临时变量,tmp,用来交换 a[i] 和 a[min]。

算法对a[1]~a[10]做遍历,选择值最小的标号,保存在 变量min中,(即选择最小)然后 把最小的放在(未排序部分的)前端。

各位朋友帮我想想: 用选择法对10个整数从小到大排序(C语言中的题),其中选择法是c中对数组进行排序的一种方法。 以整形数组元素为例,有数组A[10,gTAdbs


环保的童谣大家帮我想想,要压韵的,别抄别人得
卫生工作要做好,环保工作更重要。伸伸手,弯弯腰,环保环境会更好。果皮纸屑不乱丢,废旧电池要回收。卫生清洁身体好,大家一起做环保。花儿美,草儿俏,你我看了齐欢笑。不摘花,不踏草,环境才能更美好。树儿密,叶儿茂,树下游戏真热闹。不砍树,不采叶,空气清新心情好。蝶儿飞,鸟儿叫,舞姿...

要开学了 我想竞选团支书 竞选词大家帮我想想(适用于大学)
我叫XXX,在本次竞选中我要竞选的是团支书。我本人性格很开朗,喜欢帮助别人,我坚信在给予别人的同时也是在给自己快乐。我的思想积极进取,我确信“他人能者吾能,他人不能着我亦能。”我对学生工作有一定的经验,以往可以在大学生活中有用武之地,发挥自己的潜能。现实的生活是充满机遇和挑战的,我...

现实的残酷让我无法抉择,请大家帮我想想,要怎么做。谢谢!
是靠勇气和坚持。所以你现在的选择就是爱和交代。是选择你爱的人还是选择世俗的交代?这是你的选择题。很难。因为选择爱的人必须要通过重重考验,其中就有你父母的刁难和不理解,还有世俗的眼光。但如果选择后者,那么你的一生就这么浑浑噩噩地过去了,在平淡和无休止的精神折磨中度过你剩余的时光,在...

大家帮我想想演出用的歌曲
《在灿烂阳光下》《一杯美酒》《我爱你中国》

大家帮我想想,一般装修用什么板材好?
如果个人经济实力不错的话,可以实木板材来装修,这是一种纯天然类型的板材,不含任何有害物质,但价格上会比较高。但如果经济能力有限的话,则可以选择高密度板或是指接实木板等,环保以及性能方面会稍差些,所以装修后要通风一段时间再使用。家装板材选购注意事项1、在挑选家装板材的时候,要注意观察...

我妹妹今年高考,是学的理科,大家帮忙想想选个什么专业好呢?_百度知 ...
女生理科自愿选择很少,所以要慎重,因为如果专业选不好了,毕业都找不到工作,最后在说些报学校的窍门,其实很简单,就是先定专业后定学校,你说报的学校,一定要是你所在学校的强势专业,举个例子,我是辽宁的,用辽宁几个学校来说,你看懂这个意思就好,你想学建筑,那么必须去沈阳建筑大学,建筑...

大家来帮我想想这个题目应该选什么...多选哦!
先看乘积 如果是1和4,则乘积为4,可分解为1*4,2*2,不是唯一的一组 如果是1和7,则乘积为7是质数,可以分解为1*7,是唯一的一组 如果是4和7,则乘积为28,可分解为,4*7,2*14,1*28,不是唯一的一组 如果是1和17,则乘积为17是质数,可分解为1*17,是唯一的一组 如果是4和...

有两份待遇不一样的工作,你会选哪个?大家帮我想想
我选第二个工作。就算转正后 第一个工作工资无非是比第二个每个月多出250块。但是第一个工作明显比第一个的工作时间长的多,再说,我们不能只顾眼前的250块钱,就累死累活的干啊,想远点,第二个工作是有发展潜力的,起码8小时制,上班时间正常,我们除了上班还有一部分时间自己支配。比如在下班的...

春节送客户选什么礼品好呢?大家帮我想想,在线求救~
所谓‘柴米油盐酱醋茶’,茶也基本是每个家庭的必备品,不仅可以日常饮用,也可以用来招待客人,无论老少都可以饮用。所以,要追求实用。给客户送茶也是一个不错的选择,而用来送礼,包装非常重要,在我看来,小罐茶是最适合用来送礼的茶,从包装上来看,罐装小包装,精致卫生方便快捷。而且和品牌名、LOGO...

我要怎么选择?请大家帮我想想
现在的女友好!以后你会幸福死的!如果她要求不高还能等到二十六么!内向的人一旦认定你就死心踏地

额济纳旗19777682834: 各位朋友帮我想想: 用选择法对10个整数从小到大排序(C语言中的题),其中的“选择法”是指的是什么?它的 -
都路甘克: 选择的要比冒泡的多声明一个.比较的次数是一样的,选择排序每扫描一遍数组;次轻&quot:"&lt:冒泡算法,每次比较如果发现较小的元素在后面,就交换两个相邻的元素.将待排序的元素看作是竖着排列的"的元素就浮到了次高位置,所以...

额济纳旗19777682834: 用选择法对数组中十个整数由大到小排序,急用,请高手帮忙解答,谢谢 -
都路甘克: #includefun(inta[10]) { int i,n,t; for(i=0;i<=10;i++) for(n=0;n<=10;n++) if(a[i] { t=a[i];a[i]=a[n];a[n]=t; } } main() { int a[10]; printf("排序后为%d"fun(a)); }

额济纳旗19777682834: C语言 怎么样用选择法对10个整数排序? -
都路甘克: 选择法排序是一种简单的容易实现的对数据排序的算法.以整形数组元素为例,有数组A[10],即A[0],A[1],…,A[8],A[9](假设其元素均互不相同).要求对其元素排序使之递增有序.首先以一个元素为基准,从一个方向开始扫描,比如从左至...

额济纳旗19777682834: C语言,用选择法对数组中10个整数按由小到大排序?求解释!!! -
都路甘克: 首先以array[0]作为参照,从左到右扫描,找到最小的数据与array[0]位置交换. 接下来以array[1]作为参照,重复上述过程. ... k=i定位参照 k=j找到剩下数组中最小值

额济纳旗19777682834: 用选择法对10个整数排序.
都路甘克: void main() { int A[10]; int i,j; for( i=1;i<11;i++) A[i]=i; int min=0; int temp; for(i=0;i<10;i++) {min=A[i]; for(j=i+1;j<11;j++) if(min>A[j]) { temp=min; min=A[j]; A[j]=temp; } } }

额济纳旗19777682834: C语言 用选择法对10个整数按从大到小顺序排序 -
都路甘克: for(p=a,i=0;i<10;i++) { printf("%d",*p); p++; 少了“}” void sort(int x[],int n); 多了“;”

额济纳旗19777682834: 用选择法对10个整数按由大到小顺序排序 -
都路甘克: sort(int x[],int n) { int i,j,k,t; //定义整型变量 i,j,k,t for(i=0;i<n-1;i++)//循环,从0到n-1 { k=i; //将i值赋给k for(j=i+1;j<n-1;j++) //子循环,从i+1到n-1 if(x[j]>x[k])k=j; //如果x[i]>[k] 则 将j的值赋给k if(k!=i) //如果 k 不等于 i {t=x[i];x[i]=x[k];x[k]=t;} //x[i]与x[k]交换值 } }

额济纳旗19777682834: 用选择法对10个整数排序(由大到小) -
都路甘克: 选择法的原理是将每一个元素与他后面的元素分别比较,如果有比他大的,则交换,所以有2重循环,第一重是参加比较的元素,第二重是参加比较的元素分别与后面(这个记住,是他后面的元素,关键是后面二字)的元素分别比较 void sort(int ...

额济纳旗19777682834: C语言用选择法对10个整数按从大到小排序.10个整数用scanf函数输入.利用数组 -
都路甘克: #include<stdio.h>//标准输入输出函数调用需要此头文件、就是e799bee5baa6e997aee7ad94e58685e5aeb931333339653732那个printf和scanf函数要用的 void main()//主函数 {int i,j,min,temp,a[10]; printf("请输入:\n"); //屏幕输出引号...

额济纳旗19777682834: 用c语言实现:用选择法对10个整数排序.高手请帮帮忙. -
都路甘克: #include<stdio.h> void sort(int R[10]) { int i,j,h,temp; for(i=0;i<10;i++) { h=i; for(j=i+1;j<10;j++) if(R[j]<R[h])h=j; if(h!=j) { temp=R[i]; R[i]=R[h]; R[h]=temp; } }for(h=0;h<10;h++) printf("%5d",R[h]); } void main() { int a[10]={3,2,1,4,5,9,8,7,6,10}; sort(a); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网