c语言数组排序中的选择法是什么意思啊?

如题所述

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中 选出 最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。所以这种排序的方法叫选择法排序。

C语言参考实例:

#include <stdio.h>
void main()
{
    int a[]={1,3,4,2,0} ;
    int i,j,n=5;
    for( i=0;i<n-1;i++ )
for( j=i+1;j<n;j++ ) //每一遍都与当前a[i]比较
if ( a[i] < a[j] ) //大的前移
{
int t=a[i];
a[i]=a[j];
a[j]=t ;
}

for( i=0;i<n;i++ )
printf("%d ", a[i] );
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-11
选择排序,从第一个数组元素开始,把第一个元素分别与后面元素比较,谁比第一个元素小,就和第一个元素交换位置,然后再以这个交换过的元素跟后面的比,直到最后一个元素,比完之后呢,现在数组的第一个元素肯定是全数组最小的,然后再从第二个元素开始以之前的方法跟后面的比,完成后第二个元素就是全数组第二小的,一直这样比到最后,就是从小到大的选择排序法,如果没听懂,直接百度搜“选择排序”,应该会有更具体的答案本回答被网友采纳
第2个回答  推荐于2017-09-10
我上代码吧,这样便于理解:
选择排序,由小到大

#include<stdio.h>
void main()
{
int s[]={5,10,3,7,2,8,9};
int i,j,n;
for(i=0;i<=6;i++) //控制循环次数,第一次循环过后s[0]肯定是最小的元素值了那么第二次就是s[1]这是最小的元素值了,依此类推
for(j=i+1;j<=6;j++)
if(s[i]>s[j]) //交换,使每一次都拿s[i]和后面的比较,若s[i]<s[j]则不交换
{
n=s[i];
s[i]=s[j];
s[j]=n;
}
for(i=0;i<=6;i++)
printf("%d ",s[i]);
putchar('\n');
}本回答被提问者采纳

在C语言中什么叫选择法
选择法是每趟选出一个最值确定其在结果序列中的位置,确定元素的位置是从前往后,而每趟最多进行一次交换,其余元素的相对位置不变。可进行降序排序或升序排序。算法要求:用选择法对10个整数按降序排序。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。

c语言中的选择法是什么意思?在程序中用数组大小比较算选择法吗?
选择法是c中对数组进行排序的一种方法。以整形数组元素为例,有数组A[10](以C语言为例描述),即A[0],A[1],…,A[8],A[9](假设其元素均互不相同)。要求对其元素排序使之递增有序。首先以一个元素为基准,从一个方向开始扫描,比如从左至右扫描,以A[0]为基准。接下来从A[0],…...

c语言 选择法排序
选择法就是找出最小或最大的放在头上,然后从剩下的部分中重复这个过程:1:i循环,对a[1]到a[9]这九个数 2:i循环开始 3:假设a[i]为最小,保存i到min 4:j循环,对a[i+1]到a[10]这些数 6:j循环开始 7:判断a[min]是否大于a[j]8:条件语句开始 9:条件成立,则说明当前的最小...

C语言中的选择排序法是什么?
选择排序(Selection sort)是一种简单直观的排序算法。工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。以下是一个实现选择排序的例子:define SWAP(x, y, t) ((t) = (x), (x) = (y), (y) = (t)) \/\/将...

c语言中起泡法和选择法有什么不同,急!,谢谢!
选择法是每趟是选出一个最值确定其在结果序列中的位置,确定元素的位置是从前往后,而每趟最多进行一次交换,其余元素的相对位置不变。可进行降序排序或升序排序。一、冒泡法(起泡法)1、算法示例:用起泡法对10个整数按升序排序。2、算法分析:如果有n个数,则要进行n-1趟比较。在第1趟比较中要...

选择法排序
选择法排序是一种简单的容易实现的对数据排序的算法,以整形数组元素为例,有数组A[10],即A[0],A[1]…A[8],A[9](假设其元素均互不相同),要求对其元素排序使之递增有序。首先以一个元素为基准,从一个方向开始扫描,比如从左至右扫描,以A[0]为基准,接下来从A[0]…A[9]中找出最...

C语言中的选择法
就是每一次找出一个最大(小)的放到相应的位置。

选择排序法C语言问题
选择排序法是将第一个数默认为最小值,然后将它后面的数和它进行比较,如果有数比它小,用min_k记录这个较小数的下标,min等于这个数,然后接着向后比较,(注意后面的数一直和min比较)一直到最后一个数也比较完,这时i=n,min记录的时最小的数的值,min_k记录最小值的下标,接着进行交换,( x...

C语言中冒泡排序法和选择排序法有哪些不同?
选择排序:1>.对于选择排序,首先理解排序的思想。给定一个数组,这种思想首先假定数组的首元素为最大(最小)的。此时就要利用3个变量i,j,k表示元素的下标。i表示当前,j表示找到的最大(最小)的下标,k用于存放每次循环中最大值的下标。2>.在掌握了程序的基本思想之后,再进行排序。找到最大的...

C语言中冒泡排序法和选择排序法有哪些不同
2、选择排序法:10个数则是需要排9次,若按降序排列,第一次比较:则是将数组的第一个元素与数组中从第二个元素开始到最后的元素进行比较找到最大的数记录下来然后将值赋值给数组的第一个元素,然后进行第二次比较:则是将数组的第二个元素与数组中从第三个元素开始到最后的元素进行比较,找最大的...

相似回答