c语言冒泡排序法代码

1个回答
展开全部
咨询记录 · 回答于2022-03-29
c语言冒泡排序法代码
1.冒泡排序的基本思想 冒泡排序是交换排序中一种简单的排序方法。 它的基本思想是对所有相邻记录的关键字值进行比效,如果是逆顺(a[j]>a[j+1]),则将其交换,最终达到有序化; 其处理过程为: (1)将整个待排序的记录序列划分成有序区和无序区,初始状态有序区为空,无序区包括所有待排序的记录。 (2)对无序区从前向后依次将相邻记录的关键字进行比较,若逆序将其交换,从而使得关键字值小的记录向上”飘浮”(左移),关键字值大的记录好像石块,向下“堕落”(右移)。 每经过一趟冒泡排序,都使无序区中关键字值最大的记录进入有序区,对于由n个记录组成的记录序列,最多经过n-1趟冒泡排序,就可以将这n个记录重新按关键字顺序排列。2.原始的冒泡排序算法 对由n个记录组成的记录序列,最多经过(n-1)趟冒泡排序,就可以使记录序列成为 有序序列,第一趟定位第n个记录,此时有序区只有一个记录;第二趟定位第n-1个记录,此时有序区有两个记录;以此类推,算法框架为: for(i=n;i>1;i—) { 定位第i个记录; }代码如下:#include int main(){ int data[5]; printf("请输入数据:\n"); int i,j; for(i = 0;i < 5;i ++) { \x09scanf("%d",&data[i]);\x09//输入数据 } for(i = 0;i < 5;i ++) //采用双重循环 { \x09for(j = 0;j < 5 - i;j++) \x09{ \x09 if(data[j] > data[j+1]) //这里默认采用升序来排列 \x09\x09 {\x09\x09 \x09int temp; //定义一个临时值来存储数据,以此来达到交换数值的目的\x09\x09\x09temp = data[j];\x09\x09\x09data[j] = data[j+1];\x09\x09\x09data[j+1] = temp;\x09\x09 }\x09\x09} } printf("排序好的数组为:\n"); for(i = 0;i < 5;i ++) //用for循环来遍历并输出排序完成的数组 { \x09 printf("%
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消