赞
踩
//冒泡排序算法
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) { //一趟冒泡的过程
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> //交换的实现 void swap(int &a, int &b) { int temp = a; a = b; b = temp; } //冒泡排序算法 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) { //一趟冒泡的过程 if (arr[j - 1] > arr[j]) { //若为逆序 swap(arr[j - 1], arr[j]); //交换 flag = true; //发生了交换,flag设置为true } } if (flag == false) return; //本趟没有发生交换,即表明排序完成 } } int main() { 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]); } return 0; }
int arr[] = {49, 38, 65, 97, 76, 13, 27, 49};
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。