冒泡排序一直以来是排序算法中较为基础的算法,历来在考试和面试中出现的频率非常高,而Java作为目前最火热的编程语言,拥有庞大的用户群体,Python作为后起之秀,近两年在人工智能和大数据方面的表现也是十分抢眼。今天我们分别用Java和Python语言分别实现冒泡排序,来比较一下其中差异。
Java代码实现
public class BubbleSort implements IArraySort {
@Override
public int[] sort(int[] sourceArray) throws Exception {
// 对 arr 进行拷贝,不改变参数内容
int[] arr = Arrays.copyOf(sourceArray, sourceArray.length);
for (int i = 1; i < arr.length; i++) {
// 设定一个标记,若为true,则表示此次循环没有进行交换,也就是待排序列已经有序,排序已经完成。
boolean flag = true;
for (int j = 0; j < arr.length - i; j++) {
if (arr[j] > arr[j + 1]) {
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
flag = false;
}
}
if (flag) {
break;
}
}
return arr;
}
}
Python 代码实现
def bubbleSort(arr):
for i in range(1, len(arr)):
for j in range(0, len(arr)-i):
if arr[j] > arr[j+1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
return arr
可以看到,Python在实现冒泡排序的过程中,显得十分的简洁,代码量比Java要少得多,所以说Python是一种非常高级的语言