首先冒泡排序是大多数人最早接触的一个算法了,在这我就不多说理论了,主要看一下别的语言编写和python编写的方式问题:
首先看一下java编写
* 冒泡增序算法
* @param array
*/
public static void bubblingSort(int[] array){
for(int i=0;i<array.length;i++){
for(int j=0;j<array.length-i-1;j++){
if(array[j]>array[j+1]){
swap(array,j,j+1);
}
}
}
}
private static void swap(int[] array,int x,int y){
int temp = array[x];
array[x] = array[y];
array[y] = temp;
}
很熟悉的结构模型哈,再看python的
def bubble(numbers):
for i in range(len(numbers)):
for j in range(i):
if numbers[j] > numbers[i]:
numbers[j], numbers[i] = numbers[i], numbers[j]
print numbers
return numbers
在数值交换的方便我感觉别出新裁的意思,当然这也是py的一个有点把,取消了中间变量,利用py的语法特点直接换值,这点我觉的挺出彩。
for循环可能看惯了别的语言的编写 ,突然看这个可能逻辑有点模糊,但仔细分析还是和他们的原理是一样的,这个仔细研究一下就好了。