问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言题:输入十个数用一维数组分别用冒泡法与选择排序法进行排序

发布网友 发布时间:2022-05-21 05:23

我来回答

2个回答

热心网友 时间:2023-10-15 18:33

#include <stdio.h>
#include <conio.h>

#define ARR_LEN 255 /*数组长度上限*/
#define elemType int /*元素类型*/

/* 冒泡排序 */
/* 1. 从当前元素起,向后依次比较每一对相邻元素,若逆序则交换 */
/* 2. 对所有元素均重复以上步骤,直至最后一个元素 */
/* elemType arr[]: 排序目标数组; int len: 元素个数 */
void bubbleSort (elemType arr[], int len) {
elemType temp;
int i, j;
for (i=0; i<len-1; i++) /* 外循环为排序趟数,len个数进行len-1趟 */
for (j=0; j<len-1-i; j++) { /* 内循环为每趟比较的次数,第i趟比较len-i次 */
if (arr[j] > arr[j+1]) { /* 相邻元素比较,若逆序则交换(升序为左大于右,逆序反之) */
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}

/* 选择排序 */
/* 1. 将初始数组分为两段,前段为已排序数组,后段为未排序数组 */
/* 2. 在未排序数组中寻找最值元素,将其然后放到已排序数组的末尾 */
/* 3. 对所有元素均重复以上步骤,直至最后一个元素 */
/* elemType arr[]: 排序目标数组; int len: 元素个数 */
void selectionSort (elemType arr[], int len) {
elemType temp;
int i, j, k;
for(i=0; i<len-1; i++) { /*外循为排序趟数,len个数进行len-1趟 */
    k = i; /* 假设当前趟的第一个数为最小值,其下标记在k中(升序为寻找最小值,逆序反之) */
    for(j=i+1; j<len; j++) /* 从下一个数到最后一个数之间依次判断 */
if(arr[j] < arr[k]) /* 若k之后有更小的元素 */
k = j; /* 则将其下标记更新至k中 */
if(k != i) { /* 若k不为最初的i值,说明在其后找到比其更小的元素 */
temp = arr[k];
arr[k] = arr[i];
arr[i] = temp;
} /* 则交换最小值和当前数组第一个元素 */
}
}

/*打印数组*/
/* elemType arr[]: 打印目标数组; int len: 元素个数 */
void printArray (elemType arr[], int len) {
int i;
for (i=0; i<len; i++)
printf ("%d\t", arr[i]);
putchar ('\n');
}

int main (void) {
elemType arr1[ARR_LEN] = {3,5,1,-7,4,9,-6,8,10,4};
elemType arr2[ARR_LEN] = {3,5,1,-7,4,9,-6,8,10,4};
int len = 10;

printf ("原始数组1:\n");
printArray (arr1, len);
putchar ('\n');

printf ("冒泡排序:\n");
bubbleSort (arr1, len);
printArray (arr1, len);
putchar ('\n');

printf ("原始数组2:\n");
printArray (arr2, len);
putchar ('\n');

printf ("选择排序:\n");
selectionSort (arr2, len);
printArray (arr2, len);

getch (); /*屏幕暂留*/
return 0;
}

热心网友 时间:2023-10-15 18:33

选择法了吧
采纳我的答案吧。。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
瑞安皇都大厦几个电梯 办签证和护照的具体步骤和一共的费用!我需要详细一点的答案. 办护照流程 办护照的流程是什么 哪位推荐几部韩剧啊!!要像豪杰春香,魔女幼熙这样的,剧情要感人,最好是... 小阴唇内应该是光滑的吗,阴道口痒为什么 阴道口有像草莓样正常吗 任氏族谱字辈:世秉忠贞 永达明玉起 国正天元律迎祖大继昌 河南夏氏家谱辈分我是永城市酂城镇夏氏夏世界具家谱记载洪武二年始祖良... 夏侯姓字辈排行 夏氏辈行,我爷爷明字辈,我父亲应字辈,我是崇字辈,后面是什么辈? 为什磨在地图上澳大利亚比格林兰岛小? 有关百慕大三角的! C语言编程 题目描述 使用选择排序法对数组元素进行排序,要求输出每一趟排序后的数组内容。数组大小N 北极的风光 太平洋上岛屿最多大大小小的岛屿加起来有10000多个而且*岛火山岛和珊瑚岛阴 格林兰岛为什么属于丹麦?却为何不计入丹麦领土面积? 无人机航拍格陵兰岛美丽的自然风光 格陵兰岛 与 冰岛 风景哪个更美? 阿拉伯半岛和格陵兰岛风光差异 割包皮应该去挂哪个科 IDEA 如何查找annotation 处理器 idea中maven工程jar包报红 IDEA的Maven无法更新外界引入的仓库需要怎么结局,我已经reimport了,可还是无法导入百度OCR的api idea 改变了pom.xml要reimport在哪 中国地质大学武汉数理学院压分吗 潮汕十八式有哪些菜 请问潮汕的特产都是以甜食为主的吗? 潮汕的那个甜品金银砖那个红薯和那个芋头要不要先煮熟啊 高中 化学 实验 技巧 青岛市办理城镇居民医保补缴部分如何缴纳?财政补贴的部分也需要个人补缴吗?从哪年开始补缴? c语言题目,输入一个不少于10个数字的数组,用选择排序法,对其进行排序 c语言填空,选择排序法? 求教一道初级的C语言选择排序法的题目 美国冬夏风向 真的有夏朝这一朝代吗,有什么证据 蓝牙耳机长时间没有充电充不进去电了怎么办 7、宋辽、宋夏和议*同内容有( ) A.辽夏向宋称臣 B.北宋割地求和 C.互相禁止边境贸易 D.北宋送给辽夏 极兔速递查询JT5000415965186?你好 OBD故障灯是什么情况 CyberMonkeyOBD指示灯代表什么意思? 远景皮实耐用开不坏!谈谈自己的用车感受 吉利新远景1.5手动挡幸福版质量咋样 想了解下吉利远景X3,2019款手动幸想福版落地多少钱。 广州有那些出名的大学? 塞乐斯的哲学与天文学 3个数学家的故事 急! 三年级数学小报的字 塞乐斯的金字塔的高度 你知道哪些最伟大数学家15个最好的数学家??? 工作安排不合理怎么表达