排序(1)——冒泡排序及其优化

来源:互联网 发布:数据分析做什么的 编辑:程序博客网 时间:2024/04/27 14:14

“test.cpp”

<strong><span style="font-size:18px;">#define _CRT_SECURE_NO_WARNINGS 1#include<iostream>using namespace std;//优化趟数里的次数void BubbleSort_OP2(int* arr ,size_t size){int n = 0;int m = size-1;bool flag = true;for(int i = 0;i < size-1 && flag;i++){flag = false;for(int j = 0;j < m;j++){if(arr[j] < arr[j+1]){swap(arr[j],arr[j+1]);flag = true;n = j;}}m = n;}}//优化趟数void BubbleSort_OP(int* arr,size_t size){bool flag = true;for(int i = 0;i < size-1 && flag;i++){flag = false;for(int j = 0;j < size-1-i;j++){if(arr[j] < arr[j+1]){swap(arr[j],arr[j+1]);flag = true;}}}}//未优化void BubbleSort(int* arr,size_t size){for(int i = 0;i < size-1;i++){for(int j = 0;j < size-1-i;j++){if(arr[j] < arr[j+1]){swap(arr[j],arr[j+1]);}}}}void test(){int arr[] = {8,5,3,9,1,7,2,4,6,0};int arr2[] = {8,9,7,6,5,4,3,2,1};size_t size = sizeof(arr)/sizeof(arr[0]);size_t size2 = sizeof(arr2)/sizeof(arr2[0]);BubbleSort(arr,size);BubbleSort_OP(arr2,size2);int i = 0;for(i = 0;i < size;i++){cout<<arr[i]<<" ";}cout<<endl;for(i = 0;i < size2;i++){cout<<arr2[i]<<" ";}cout<<endl;int arr3[] = {5,1,2,3,4,6,8,0,9,7};int size3 = sizeof(arr3)/sizeof(arr3[0]);BubbleSort_OP2(arr3,size3);for(i = 0;i < size3;i++){cout<<arr3[i]<<" ";}cout<<endl;}int main(){test();system("pause");return 0;}</span></strong>


0 0
原创粉丝点击