此代码有得有失,他的时间复杂度根据数据内容变化,最高会比普通bubble sort多循环一次,但是他只会循环到排完序后多一次。
void bubbleSort(int arr[], int n)
{
int i,temp,flag=1;
while(flag==1){
flag=0;
for(i=0;i<n-1;i++){
if(arr[i]>arr[i+1]){
temp=arr[i+1];
arr[i+1]=arr[i];
arr[i]=temp;
flag=1;
}
}
}
}
本文深入探讨了一种改进版的冒泡排序算法,该算法的时间复杂度根据数据内容变化,虽然最坏情况下可能比标准冒泡排序多一次循环,但一旦数组有序,将立即停止。通过具体代码实现,展示了如何利用标志位来优化冒泡排序过程。
2941

被折叠的 条评论
为什么被折叠?



