标签:div numbers nbsp string line alt str ble tle
冒泡排序:冒泡排序是一种简单的排序,它是将相邻的两个数依次比较,将小数放在前面,大数放在后面。然后重复地走访过要排序的数列,直至没有需要交换的数为止,即排序完成。"冒泡"这个词也就是因为越小的元素会经由交换慢慢“浮”到数列的顶端,像气泡一样慢慢冒出来一样。
冒泡排序的示范如下:
1.第一个数与相邻数比较大小交换位置 2.交换位置后与相邻的数再次比较大小后交换位置
3.第一趟排序完成 4.排序完成
冒泡排序的Java算法如下:(数组从小到大排列)
1 /** 2 * 冒泡排序 3 * @author turtle 4 * 工作思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。 5 * 即在第一趟时,首先比较第1个和第2个数,将小数放前,大数放后。 6 * 然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后,完成排序。 7 */ 8 public class bubble { 9 public static void bubbleSort(int[] numbers) { 10 int size = numbers.length; 11 for (int i = 0; i < size - 1; i++) { //冒泡趟数n-1次 12 for (int j = 0; j < size - 1 - i; j++) { 13 if (numbers[j] > numbers[j + 1]) { 14 int temp = numbers[j]; 15 numbers[j] = numbers[j + 1]; 16 numbers[j + 1] = temp; 17 } 18 } 19 } 20 } 21 }
冒泡排序是一种用时间换空间的排序算法,最坏的情况是把顺序的排序变成逆序(O(n2)),或者把逆序的排序变成顺序(O(n)),每一次比较都需要进行交换运算。
运行测试:
1 public class run { 2 public static void main(String[] args) { 3 int[] bubble_num = { 46, 37, 34, 33, 28, 16, 14, 5, 5, 1 }; 4 bubble.bubbleSort(bubble_num); 5 System.out.println(Arrays.toString(bubble_num)); 6 } 7 }
测试结果:
[1, 5, 5, 14, 16, 28, 33, 34, 37, 46]
标签:div numbers nbsp string line alt str ble tle
原文地址:http://www.cnblogs.com/Turtledove/p/7455198.html