冒泡排序及其优化
一般方法
void BubbleSort ( int arr[ ] , int len)
{
int i = 0 ;
int tmp = 0 ;
for ( i = 0 ; i < len - 1 ; i++ )
{
int j = 0 ;
for ( j = 0 ; j < len - 1 - i; j++ )
{
if ( arr[ j] > arr[ j + 1 ] )
{
tmp = arr[ j] ;
arr[ j] = arr[ j + 1 ] ;
arr[ j + 1 ] = tmp;
}
}
}
}
-- -- -- -- -- -- -- -- -- -- -
作者:Hansionz
来源:CSDN
原文:https: / / blog. csdn. net/ hansionz/ article/ details/ 80822494
版权声明:本文为博主原创文章,转载请附上博文链接!
优化后的方法
void BubbleSort ( int arr[ ] , int len)
{
int i = 0 ;
int j = 0 ;
int n = 0 ;
int flag = 0 ;
int pos = 0 ;
int k = len - 1 ;
for ( i = 0 ; i < len - 1 ; i++ )
{
pos = 0 ;
flag = 0 ;
for ( j = n; j < k; j++ )
{
if ( arr[ j] > arr[ j + 1 ] )
{
int tmp = arr[ j] ;
arr[ j] = arr[ j + 1 ] ;
arr[ j + 1 ] = tmp;
flag = 1 ;
pos = j;
}
}
if ( flag == 0 )
{
return ;
}
k = pos;
for ( j = k; j > n; j-- )
{
int tmp = arr[ j] ;
arr[ j] = arr[ j - 1 ] ;
arr[ j - 1 ] = tmp;
flag = 1 ;
}
n++ ;
if ( flag == 0 )
{
return ;
}
}
}
-- -- -- -- -- -- -- -- -- -- -
作者:Hansionz
来源:CSDN
原文:https: / / blog. csdn. net/ hansionz/ article/ details/ 80822494
版权声明:本文为博主原创文章,转载请附上博文链接!