C语言 怎么样用选择法对10个整数排序?
作者&投稿:鄘王 (若有异议请与网页底部的电邮联系)
本文我们主要讲解选择法排序,首先讲解了选择法排序的概念,然后结合具体的例子为大家讲解了如何使用选择法排序找到数组中的最大数,最后给大家留了两道题,分别是冒泡排序和选择法排序进行数组排序。
d=k=i; 不能这样写,要分开来:
k=i;
d=i;
以整形数组元素为例,有数组A[10],即A[0],A[1],…,A[8],A[9](假设其元素均互不相同)。要求对其元素排序使之递增有序。
首先以一个元素为基准,从一个方向开始扫描,比如从左至右扫描,以A[0]为基准。
接下来从A[0],…,A[9]中找出最小的元素,将其与A[0]交换。
然后将基准位置右移一位,重复上面的动作,比如,以A[1]为基准,找出A[1]~A[9]中最小的,将其与A[1]交换。
一直进行到基准位置移到数组最后一个元素时排序结束(此时基准左边所有元素均递增有序,而基准为最后一个元素,故完成排序)。
main()
{ int array[10];
//给数组初始化!
int i,j,k,temp;
for(i=0;i<10-1;i++) {
k=i;
for(j=i+1;j<10;j++)
if (array[j]<array[k]) k=j ;
temp=array[k];array[k]=array;array=temp;
}
}
沙菲复方: #include <stdio.h> void main() { void sort(int arry[],int n);//函数声明 int a[10],i; printf("enter the array:\n"); for(i=0;i<10;i++) //输入十个数 scanf("%d",&a[i]); sort(a,10);//调用排序函数 printf("the sorted array:\n"); for(i=0;i<10;i++) //输出十个...
翁牛特旗15644871264: C语言 怎么样用选择法对10个整数排序? - ?
沙菲复方: 选择法排序是一种简单的容易实现的对数据排序的算法.以整形数组元素为例,有数组A[10],即A[0],A[1],…,A[8],A[9](假设其元素均互不相同).要求对其元素排序使之递增有序.首先以一个元素为基准,从一个方向开始扫描,比如从左至...
翁牛特旗15644871264: C语言编程题:用选择法对10个整数排序 - ?
沙菲复方: #include main() { int a[10],i,j,t; printf("please input ten int numbers:"); for(i=0;ia[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } for(i=0;i
翁牛特旗15644871264: c语用选择法对10个整数进行由小到大排序 - ?
沙菲复方: 冒泡排序法1 跟 2 比 2跟3比 ....8根9比 9跟10比 前面的比后面的大就把这两个换一下 做一个 int count 如果一次 1-10冒泡排序 有前面的比后面的大 count=1 最外面做一个 while count=0
翁牛特旗15644871264: C语言 用选择法对10个整数按从大到小顺序排序 - ?
沙菲复方: for(p=a,i=0;i<10;i++) { printf("%d",*p); p++; 少了“}” void sort(int x[],int n); 多了“;”
翁牛特旗15644871264: 用C语言用选择法对10个整数按升序排列(指针变量表示数组) - ?
沙菲复方: 选择法: #include "stdio.h" main() { int a[11]; int i,j,k,n; for (i=1;i<11;i++) scanf("%d",&a[i]); for(i=1;i<10;i++) for(j=i+1;j<=10;j++) { (a[i]>a[j])?(a[0]=a[i],a[i]=a[j],a[j]=a[0]):(a[0]=0); } for(i=1;i<11;i++) printf("%5d",a[i]); } 起泡法: #include "stdio....
翁牛特旗15644871264: 用选择法对10个整数排序,c语言大神帮我写下 - ?
沙菲复方: #include <stdio.h> #include <stdlib.h> //选择排序, pnData要排序的数据, nLen数据的个数 int SelectSort(int* pnData, int nLen) { //i从[0,nLen-1)开始选择,确定第i个元素 for (int i = 0; i < nLen - 1; ++i) { int nIndex = i; //遍历剩余数据,选择出当...
翁牛特旗15644871264: c语言关于用简单选择法对输入的10个整数进行由小到大排列 - ?
沙菲复方: 楼主这段代码是这样看得::::for(i=0;i<9;i++){ k=i; for(j=i+1;j<10;j++) /* 循环 注意我打的回车 for 和 if 后面不带 { } 的话 作用范围 只有 后面的一句 */ if(a[j]<a[k]) k=j; if(i!=k){ x=a[i]; /*这三行 是交换 a[i] 和 a[k] 的值 k是中间变量 */ a[i]=a[k]; a[k]=x; } }
翁牛特旗15644871264: 用选择法对十个数排序(用C语言) - ?
沙菲复方: #include <stdio.h> main() { static int temp,a[]={7,5,6,8,9,4,1,0,2,3}; int i,j; for (i=0;i<n;i++) for (j=i+1;j<n;j++) if (a[j]<a[i]) { temp=a[j]; a[j]=a[i]; a[i]=temp; } printf("%d",a[i]); }
翁牛特旗15644871264: 在C语言中,如何用函数实现,用选择法对10个数进行排序 - ?
沙菲复方: //选择 void sort1(int *a,int n) { for(int i=0;ia[j]) sp(a[i],a[j]); } //冒泡 void sort2(int *a,int n) { for(int i=1;ia[j+1]) sp(a[j],a[j+1]); } //插入 void sort(int* a,int n) { int temp,int item; for (int i=1;i=0&&a[item]>temp) { a[item+1]=a[item]; item--; } a[item+1]=temp; ...