冒泡排序思想介绍:
核心思想:相邻两个数之间比较,把大的数往右换,最终每经过一次内层循环,就把当前未排序的数组的最大值换到最右边去了;如果是从大到小排序,就把小的数往右换,换到最后那个数就是最小的
时间复杂度:冒泡排序的时间复杂度为O(n^2),很好理解,内外层循环
下面贴上代码:
void Bubble_Sort(int* a,int n)
{
int temp=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<n-1-i;j++) //n-1-i, 因为此时a[n-1-i]以及后面的元素都是排好的
{
if(a[j]>a[j+1]) //把大值往右换,最终最大值就会换到 a[n-1-i]这个位置
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
最近在学习python,下面给出python的代码,思想是一样的,只是语言更简洁:
def bubble_sort(l):
for i in range(len(l)):
for j in range(len(l)-1-i):
if(l[j]>l[j+1]):
l[j],l[j+1]=l[j+1],l[j]
return l
上述代码亲测能够运行出正确结果,如有问题,欢迎随时指正,在此致谢!