冒泡排序解析 + 代码实现(C语言)
Posted Stevin的技术博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序解析 + 代码实现(C语言)相关的知识,希望对你有一定的参考价值。
冒泡排序思路:若是正序(从小到大)排列,从第一个元素开始,依次两两比较元素,若前面的元素大于后面的,则交换两元素的位置。否则继续往后比较。每比较一趟即可寻找出当前未排序的最大的元素放到对应位置(第一趟将最大的元素放到最后,第二趟将次大的元素放到倒数第二的位置,以此类推…,直到找出第二小的元素放到第二个位置,此时最小的元素已经放到了第一的位置)。
C语言代码实现
# include <stdio.h>
int main(void)
{
int arr[10] = {1,2,6,5,2,4,8,9,7,0}; //定义一个装10个整型元素的数组,并初始化
//外层循环设置比较趟数,每比较一趟,即寻找出当前未排序的最大的元素放到对应位置,所以循环9次,排好9个元素,最后一个元素自然也就排好了。
for (int i = 0;i < 9;i++){
for (int j = 0;j < 10-1-i;j++){ //-1表示下标,10个元素的数组下标最大到9,-i表示减去已经排好的元素个数
if (arr[j] > arr[j+1]) { //因为是从小到大排序,所以如果是两个数前面的是大数,要进行交换
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
// 打印输出比较结果
for(int i = 0;i < 10;i++){
printf("-%d-;",arr[i]);
}
}
以上是关于冒泡排序解析 + 代码实现(C语言)的主要内容,如果未能解决你的问题,请参考以下文章
八大排序算法C语言过程图解+代码实现(插入,希尔,选择,堆排,冒泡,快排,归并,计数)
8种面试经典!排序详解--选择,插入,希尔,冒泡,堆排,3种快排,快排非递归,归并,归并非递归,计数(图+C语言代码+时间复杂度)
8种面试经典排序详解--选择,插入,希尔,冒泡,堆排,3种快排及非递归,归并及非递归,计数(图+C语言代码+时间复杂度)
8种面试经典排序详解--选择,插入,希尔,冒泡,堆排,3种快排及非递归,归并及非递归,计数(图+C语言代码+时间复杂度)