c 数组排序(c语言对一维数组排序)

本文目录
c语言对一维数组排序
#include 《stdio.h》
int main()
{
int i,j,t,a; //定义变量及数组为基本整型
printf("请输入10个数:\n");
for(i=1;i《11;i++)
scanf("%d",&a); //从键盘中输入10个数
for(i=1;i《10;i++) //变量i代表比较的趟数
for(j=1;j《10-i;j++) //变最j代表每趟两两比较的次数
if(a)
{
t=a; //利用中间变量实现两值互换
a;
a=t;
}
printf("排序后的顺序是:\n");
for(i=1;i《=10;i++)
printf("%5d",a); //将冒泡排序后的顺序输出
printf("\n");
return 0;
}
C语言数组选择排序法,超简单,求解
for语句有4个部分内容for ( A;B;C ) D;其中A是初始化语句,每个for只执行A一次,B是循环条件,每次循环前执行判断,如果不满足则结束循环,D是在满足循环条件时执行的,可以是一句或多句(多句时用大括号括起来做整体处理),C是在执行D之后进行的后续处理。for语句执行的顺序是:A,B,D,C,B,D,C,B,D,C,...,B结束
for ( i=0;i《9;i++ ) {
iTemp=a; iPos=i;
for ( j=i+1;j《10;j++ ) {
if ( a; iPos=i; }
}
a=iTemp;
}
假设数组a中输入了十个数为:1,2,5,4,6,8,7,9,10,3,通过手动单步执行程序(把自己当成计算机),分析理解for语句的含义。
i=0;,i《9成立,开始循环
iTemp=a
j=i+1;,跳过不执行
j++;,跳过不执行
j++;,跳过不执行
j++;,跳过不执行
... //没有条件满足让if语句条件能得到执行,因为a都不小于iTemp
j++;,j《10不成立,结束循环
a之后所有数组中最小值
i++;,i《9成立,继续循环
iTemp=a
j=i+1;,跳过不执行
j++;,跳过不执行
... //没有条件满足让if语句条件能得到执行,因为a都不小于iTemp
j++;,j《10不成立,结束循环
a之后所有数组中最小值
i++;,i《9成立,继续循环
iTemp=a
j=i+1;
j++;,跳过不执行
...
j++;
j++;,j《10不成立,结束循环
a值互换
现在数组变成: 1,2,3,4,6,8,7,9,10,5
...//每次i循环都会导致当前a保存之后最小值
i++;,i《9不成立,结束循环
至此数组按照从小到大顺序排序
上述循环中,i值指定当前要处理的元素,j值负责每次提供之后所有元素下标,在进行比较后,当前i指向元素会与之后最小值进行交换,保证当前元素是之后元素中最小的,从而进行9次这样的处理后数组按顺序已经排好序了。
C语言一维数组排序
今天为嘛总是见到最后这句话……
初学者……冒泡呗,两个数据都冒。两个for循环,两趟比较,每趟把最大的放最前面(或者最小的放最后面,我感觉都一样)交换的时候,把两个都同时交换了就好……
c语言数组的排序
可以采用冒泡排序的方法。以下给题主一个对既定数组进行升序、降序排序的代码
#include 《stdio.h》
#include 《time.h》
#define elemType int /*元素类型*/
#define LEN 100 /*数组长度上限*/
#define ASC 0 /*升序*/
#define DESC 1 /*降序*/
/*冒泡排序*/
/*参数说明:*/
/*elemType arr:排序目标数组*/
/*int len:元素个数*/
/*int order:排序方式;升序(由小到大):ASC;降序(由大到小):DESC*/
void bubbleSort (elemType arr, int len, int order) {
int i, j, temp;
for (i = 0; i 《 len - 1; i++)
for (j = 0; j 《 len - 1 - i; j++) {
if (order == ASC) { /*升序*/
if (arr) {
temp = arr;
arr;
arr = temp;
}
}
else if (order == DESC) { /*降序*/
if (arr) {
temp = arr;
arr;
arr = temp;
}
}
}
}
/*打印数组*/
void printArr (elemType arr, int len) {
int i;
for (i=0; i《len; i++)
printf ("%d\t",arr);
putchar (’\n’);
}
int main (void) {
elemType arr = {3,5,1,7,2,9,6,8,10,4};
int len;
len = 10;
puts ("初始数组:");
printArr (arr,len);
putchar (’\n’);
puts ("升序排列:");
bubbleSort (arr, len, ASC); /*升序冒泡排序*/
printArr (arr,len);
putchar (’\n’);
puts ("降序排列:");
bubbleSort (arr, len, DESC); /*降序冒泡排序*/
printArr (arr,len);
putchar (’\n’);
getch (); /*屏幕暂留*/
return 0;
}
运行结果

更多文章:
tcp ip四层网络模型(TCP IP参考模型共分为四层:( )、网络层、传输层、应用层)
2026年10月10日 15:20
sql server数据库管理系统是基于(MS-SQL 是甚麼)
2026年10月10日 14:40
oracle11g安装和配置(oracle数据库安装在什么地方)
2026年10月10日 09:10
php安装图文(php页面加入图文编辑框,这是什么技术,请大师指点)
2026年10月10日 08:50
sqlyog执行sql脚本(如何执行一个mysql的sql脚本文件)
2026年10月10日 06:10





