7.2.2 冒泡排序
C++ Codes:
template<class T>
void BubbleSort(T vec[], int length)
{
for(int i=0;i<length;++i)
{
for(int j=0;j<length-i-1;++j)
{
if(vec[j]>vec[j+1])
{
T val=vec[j+1];
vec[j+1]=vec[j];
vec[j]=val;
}
}
}
}
Python Codes:
def BubbleSort(arr):
for i in range(0,len(arr)):
for j in range(0,len(arr)-i-1):
if(arr[j]>arr[j+1]):
val=arr[j+1]
arr[j+1]=arr[j]
arr[j]=val
冒泡排序最好情况下时间复杂度是O(n),最坏情况下时间复杂度为O(n的平方)
冒泡排序只需要一个辅助空间用于交换记录,所以,冒泡排序算法是一种稳定的排序方法。