//冒泡排序算法voidBubbleSort(int arr[],int len){for(int i =0; i < len -1;++i){
bool flag = false;//表示本趟冒泡排序是否发生了交换的标志for(int j = len -1; j > i;--j){//一趟冒泡的过程if(arr[j -1]> arr[j]){//若为逆序swap(arr[j -1], arr[j]);//交换
flag = true;//发生了交换,flag设置为true}}if(flag == false)return;//本趟没有发生交换,即表明排序完成}}
项目完整代码
//交换排序————冒泡排序(稳定,空间复杂度为O(1),最好情况时间复杂度为O(n),最坏情况时间复杂度O(n^2))#include<stdio.h>//交换的实现voidswap(int&a,int&b){int temp = a;
a = b;
b = temp;}//冒泡排序算法voidBubbleSort(int arr[],int len){for(int i =0; i < len -1;++i){
bool flag = false;//表示本趟冒泡排序是否发生了交换的标志for(int j = len -1; j > i;--j){//一趟冒泡的过程if(arr[j -1]> arr[j]){//若为逆序swap(arr[j -1], arr[j]);//交换
flag = true;//发生了交换,flag设置为true}}if(flag == false)return;//本趟没有发生交换,即表明排序完成}}intmain(){int arr[]={49,38,65,97,76,13,27,49};int len =sizeof(arr)/sizeof(int);//冒泡排序BubbleSort(arr, len);//将已排序结果输出printf("冒泡排序结果为:");for(int i =0; i < len;++i){printf("%d ", arr[i]);}return0;}
C语言实现冒泡排序文章目录C语言实现冒泡排序冒泡排序算法项目完整代码运行效果图冒泡排序算法//冒泡排序算法void BubbleSort(int arr[], int len) { for (int i = 0; i < len - 1; ++i) { bool flag = false; //表示本趟冒泡排序是否发生了交换的标志 for (int j = len - 1; j > i; --j)