一、个人冒泡排序理解
以从大到小为例,冒泡排序的本质就是就是遍历所有相邻元素,如果前者小于后者就进行交换,反之保持原有位置不变。设元素个数为n,以最复杂的情况为例子,即当前元素是以从小到大进行排序,则需要进行n-1轮交换,每轮交换次数为n-1,则总交换次数为(n-1)²
二、程序举例
# include <stdio.h>
int main ( void )
{
int data[8] = {0,15,16,89,105,35,49,52};
unsigned int i = 0 ;
unsigned int j = 0 ;
unsigned int k = 0 ;
unsigned int t = 0 ;
for ( i = 0 ; i < 7 ; i++ )
for ( j = 0 ; j < 7 ; j ++ )
{
if (data[j] < data[j+1])
{
k = data[j] ;
data [j] = data[j+1];
data[j+1] = k ;
}
}
printf ( "冒泡排序从大到小依次为:");
for ( t = 0 ; t < 8 ; t++ )
{
printf ( " %d ",data[t]);
}
while ( 1 )
{
}
}
三、运行结果