标签:第一个 冒泡 wap define sys 空间 数组 复杂度 停止
这将是我第一个记录自己学习轨迹的博客文,本次记录的是冒泡排序。
冒泡排序最大时间复杂度为O(n^2),从空间复杂度和时间复杂度来说冒泡排序算法并不是最好的排序方法。但是冒泡排序有一些优点:冒泡法有一个很形象的名字,冒泡法排序是一种就地排序,冒泡排序还是一种稳定的排序(冲突间相对位置不变)。
冒泡排序的执行步骤为:
改进的冒泡排序实际上是在每次向后遍历后判断是否有交换位置的操作发生,若没有,说明已经全部排序完成,当即停止遍历,输出结果。
C++代码如下:
头文件Sort.h:
1 #ifndef _SORT_H 2 3 #define _SORT_H 4 5 class bubble_sort{ 6 7 private: 8 9 int *Array,Length; 10 11 public: 12 13 bubble_sort(int *Array1,int Length); 14 15 int *sort_bubble(); 16 17 }; 18 19 #endif
Cpp文件 bubble_sort:
1 #include "Sort.h" 2 3 bubble_sort::bubble_sort(int *Array1,int Length1)//带参数的的构造函数 4 5 { 6 7 this->Array = Array1; 8 9 this->Length = Length1; 10 11 } 12 13 14 15 /****************************************************************************************************** 16 17 冒泡排序的时间复杂度为O(n2),改进后判断是否不需要再换位,提前退出遍历。 18 19 *********************************************************************************************************/ 20 21 int *bubble_sort::sort_bubble()//执行冒泡排序的函数sort_bubble 22 23 { 24 25 bool flag = false; 26 27 for (int i = Length; i > 0; i--) 28 29 { 30 31 for (int j = 0; j < i-1; j++) 32 33 { 34 35 if (Array[j] > Array[j + 1]) 36 37 { 38 39 int swap_num = Array[j]; 40 41 Array[j] = Array[j + 1]; 42 43 Array[j + 1] = swap_num; 44 45 bool flag = true; 46 47 } 48 49 } 50 51 if (flag) 52 53 break; 54 55 } 56 57 return Array; 58 59 }
Cpp 文件Main:
1 /********************************************* 2 3 write by Leo Lv 4 5 2019.03.29 6 7 sort algorithm 8 9 ********************************************/ 10 11 #include <iostream> 12 13 #include "Sort.h" 14 15 using namespace std; 16 17 void main() 18 19 { 20 21 /*************冒泡排序*******************************/ 22 23 int Array[10] = { 100, 10000, 6, 8, 9, 1, 3, 2, 4, 0 }; 24 25 bubble_sort c(Array,10); 26 27 for (int i = 0; i < 10;i++) 28 29 cout << *(c.sort_bubble()+i)<< endl; 30 31 /********************************************************/ 32 33 34 35 system("pause"); 36 37 }
本人是数据结构与算法菜鸟,不足之处请各位大佬指正!
标签:第一个 冒泡 wap define sys 空间 数组 复杂度 停止
原文地址:https://www.cnblogs.com/leo-lv/p/10621865.html