算法思想 :
(升序)
将数组 元素 从前到后 遍历,相邻 两个 元素 比较大小 ,若前边的 元素 大于后边 的 元素 ,相互 交换位置 ,直到所有 的 元素 比较完毕 。
java代码实现
public class BubbleSort {
/**
* 冒泡排序思想:
* 数组的元素从前到后遍历,相邻两个元素比较大小,若前边大于后边相互交换位置,直到没个元素都比较完毕
*
* @param array array
*/
public static void sort(int[] array) {
for (int i = 0; i < (array.length - 1); i++) {
for (int j = 0; j < (array.length - i - 1); j++) {
if (array[j] > array[j + 1]) {
swap(array, j, j + 1);
}
}
}
}
/**
* 交换数组的两个元素
*
* @param array 数组
* @param left 前边的元素
* @param right 后边的元素
*/
private static void swap(int[] array, int left, int right) {
if (array != null && array.length > 1) {
int tmp = array[left];
array[left] = array[right];
array[right] = tmp;
}
}
}
C++代码实现
//冒泡排序思想:将数组元素从前到后遍历,相邻两个元素比较大小,若前边的元素小于后边的元素,相互交换位置,直到所有元素比较完毕
void bubbleSort(int array[], int len) {
for (int i = 0; i < (len - 1); ++i) {
for (int j = 0; j < (len - i - 1); ++j) {
if (array[j] > array[j + 1]) {
//若前边的元素大于后边的元素,则交换两个元素的位置
std::swap(array[j], array[j + 1]);
}
}
}
}
//打印数组的元素
void printArray(int array[], int len) {
for (int i = 0; i < len; ++i) {
LOGE("%d", array[i]);
}
}
网友评论