Java基础系列--冒泡排序

原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9064218.html

1、算法简介

  冒牌排序是很耳熟的排序方式,虽然它使用的很少,但是经常会出现在面试中,冒泡的意思是渐进式的意思,即渐进式排序。

2、算法原理

  冒泡排序就是通过相邻元素的两两比较交换的方式实现排序,每次比较的两个元素中都包含上一次比较的后一位元素,也就是每次比较替换之间都是存在关联的,那个关联的元素一步步向后移,就好比冒泡一般,直到水面(排好序)。

  每次冒泡的结束都意味着一个元素的归位,即一个元素被排好序,一般我们都是采用向后冒泡的方式来实现排序的,那么也就意味着,元素归位的顺序是从尾部开始的。

  而每次冒泡又都是从首位元素开始的,到未被排序的最后一位结束。那么也就意味着每次冒泡的比较次数要比上一次冒泡少1次,因为每结束一次冒泡就会在末尾完成一个元素的排序,而未排序的元素相应的就会少一位。

  了解上面的这些,这有利于我们实现编程算法,但初学者必定是一头雾水,不要急,你需要在参考下面实现源码的基础上再理解上面的内容,那么你会加深理解。

3、算法实现

1 public class BubbleSort { 2 3 public static void main(String[] args) { 4 int[] ints = {2, 6, 4, 9, 12, 98, 5, 32, 90, 33, 24, 65, 37, 12, 4}; 5 sort(ints); 6 } 7 8 public static void sort(int[] ints){ 9 for(int i = ints.length - 1; i > 0; i--) { 10 for(int j = 0; j < i; j++) { 11 if(ints[j] > ints[j + 1]){ 12 int temp = ints[j]; 13 ints[j] = ints[j + 1]; 14 ints[j + 1] = temp; 15 } 16 } 17 } 18 for(int i : ints) { 19 System.out.print(i + " "); 20 } 21 } 22 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyjsgj.html