回顾一下经典的算法:冒泡排序法
首先介绍一下“冒泡排序法”是什么:
顾名思义,冒泡嘛,就是气泡慢慢从水底浮上来。
而我们这里浮上来的不是气泡,而是“数”。
冒泡排序法就是比较前两个数,如果第一个数比第二个数小,那么位置不变;如果第一个数比第二个数大,那么交换位置,即大的数放到后面。
之后第二个数与第三个数比较,第三个数与第四个数比较... ...直到倒数第二个数和倒数第一个数比较。
那么,比较一轮下来,最后边的数一定是最大的数。
然后,针对于剩下的数字,重复上述步骤。
这样,当重复完成后,这排数列就按照从小到大的顺序排好了。
C语言里的冒泡排序法:
#include <stdio.h>
#define SIZE 8
void bubble_sort (int a[ ] , int n );
void bubble_sort (int a[ ] , int n ){
int i , j ,temp ;
for ( j = 0 , i < n-1-j ; j ++ )
for ( i=0 ; i < n -1 - j ; i ++ )
{
if (a [ i ] > a [ i + 1 ] )
{
temp = a [ i ] ;
a [ i ] = a [ i + 1 ] ;
a [ i + 1 ] = temp ;
}
}
}
int main ( )
{
int number [ SIZE ] = { 95, 45, 15, 78, 84, 51, 24, 12 } ;
int i ;
bubble_sort ( number , SIZE ) ;
for ( i = 0 , i <SIZE ; i ++ )
{
print ( "%d", number[ i ] ) ;
}
print ( "\n" )
}
Python里的冒泡排序法:
List = [ 3, 4, 1, 2, 5, 8, 0 ]
for i in range( len ( List ) -1 ):
for j in range( len ( List ) -1 - i ) :
if List[ j ] > List[ j + 1]:
List [ j ] , List [ j + 1 ] = List [ j + 1 ] , List [ j ]
print (List)