(1)算法描述
对于给定的线性序列,每一个元素与其下一个元素进行比较,如果满足大于当前元素就交换位置,然后依次向下比较。利用数学归纳法得知:N个元素总共比较N(N-1)次。
(2)图解算法
(3) C/C++代码实现
Custom.h
void BubbleSort(int arr[], int number);
Custom.cpp
void BubbleSort(int arr[], int number) {
for (int i = 0; i < number; i++) {
for(int j = 0; j < number-1; j++) {
if(arr[j] > arr[j+1]) {
int temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
}
(4)Java代码实现
public class BubbleSort {
public static void sort(int[] arr, int number) {
for (int i = 0; i < number; i++) {
for (int j = 0; j < number-1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
}
}
(5) 时间复杂度分析
无论是否数据规模处于最好还是最坏情况,都需要每个元素进行比较,因此时间复杂度是O(n^2)。
原文地址:http://blog.51cto.com/xvjunjie/2328911
时间: 2024-10-10 03:25:37