void maopao(int *a,int n)
{
int temp;
for(int i = 1;i < n;i++)
{
for(int j = n-1;j >= i;j--)
{
if(a[j] <= a[j-1])
{
temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
}
{
int temp;
for(int i = 1;i < n;i++)
{
for(int j = n-1;j >= i;j--)
{
if(a[j] <= a[j-1])
{
temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
}
}
时间未O(n*n);一次循环排好好一个数字;
void gaijinmaopao(int *a,int n)
{
int temp;
for(int i = 0;i < n-1;i++)
{
for(int j = n-1;j > i;j--)
{
if(a[j] <= a[j-1])
{
temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
for(int k = 0;k < n-1;k++)
{
if(a[k] >= a[k+1])
{
temp = a[k];
a[k] = a[k+1];
a[k+1] = temp;
}
}
}
}
改进的冒泡排序方法,时间复杂度为O2*n*n)= O(n*n);一次外层循环会排好两个数字,后面基本有序的序列,比较快于交换,故优于冒泡;