排序算法 之 (冒泡排序)
10.3、冒泡排序
从后往前依次比较两个元素,如果后面小于前面就交换,每次都会寻找到其中最小的那个元素放到前面
冒泡排序图解
冒泡排序的C代码实现
#include <stdio.h> #include <stdlib.h> #define boolean int #define false 0; #define true 1; //冒泡排序:nums:待排序数组,length:数组长度 boolean BubbleSort(int nums[],int length){ if(length == 0) return false;//数组为空,不需要排序 for(int i = 0; i < length-1;i++){ boolean flag = false;//用来标记是否已经排好序了 for(int j = length-1;j > i;j--){ if(nums[j] < nums[j-1]){//如果后面的比前面小就交换 int temp = nums[j]; nums[j] = nums[j-1]; nums[j-1] = temp; flag = true; } } if(!flag){//如果这次交换一次都没有发现表示已经排好序了,就直接退出 return true; } } } int main(){ int nums[] = {49,38,65,97,76,13,27,49}; int length = 8; printf("直接插入排序前:"); for(int i = 0; i < length ;i++){ printf("%d ",nums[i]); } BubbleSort(nums,length); printf("\n"); printf("直接插入排序后:"); for(int i = 0; i < length ;i++){ printf("%d ",nums[i]); } return 0; } //结果: 直接插入排序前:49 38 65 97 76 13 27 49 直接插入排序后:13 27 38 49 49 65 76 97
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!