C语言程序设计-选择法排序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
输出结果
for(i=0;i<N;i++)
for(i=0;i<N;i++)
scanf("%d",&a[i]); printf("%5d",a[i]);
printf(“Insert data:");wenku.baidu.comscanf("%d",&data);
for(i=0;i<N;i++) if (a[i]>data) { t1=a[i]; a[i]=data; for(j=i+1;j<N+1;j++) { t2=a[j]; a[j]=t1; t1=t2;} }
选择法排序
// --------------sort-------------------
for (i=0;i<num; i++)
思路: 1.确定搜索范围;(记录输入数据的个数)
{ max=data [i]; n=i;
2.遍历数据,选出其中的最大值;
for (j=i; j <num; j++)
3.将最大的数据和最前面的数据交换; 4.搜索范围减小一个;
习题 已有排好序的数组(有N个元素),输入一数 据,按原序规律插入数组中
打印初始数组(由小 到大排列)
输入待插入数值data
与数组元素比较
逐个比较直到找到数组 元素a[i]>data,
将data插在a[i]处 将原第i个元素之后的所
有元素下标依次增1 若大于末尾数组元素则
将data插入数组末尾
{ if (data[ j]>max) {max=data[ j]; n=j;}
5.重复步骤2和3,直至排序完毕。
}
temp=data [i];
data [i]=data [n];
// ----------input data --------------
data [n]=temp;
for (i=0;i<100;i++)
}
{ scanf("%f",&data[i]);
if (data[i]==9999) break;
num=i; // -----data number }
// ----------output data -------------for (i=0;i<num;i++)
printf("%f\n",data[i]);
if(data>a[i-1]) a[i]=data;
for(i=0;i<N+1;i++) printf("%5d",a[i]);
相关文档
最新文档