冒泡排序
来源:互联网 发布:xmind7 mac 破解版 编辑:程序博客网 时间:2024/05/22 19:57
交换类排序的思想是通过一系列交换逆序元素进行排序的方法,经典的交换排序算法有冒泡排序和快速排序。
冒泡排序应该算是最简单的排序算法了,其过程如下:
1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3. 针对所有的元素重复以上的步骤,除了最后一个。
4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
Java版本实现:
public class SortAlg { public static void main(String[] args) { int[] numbers = {5, 1, 6, 7, 0, 4, 2, 3}; bubbleSort(numbers); System.out.println(Arrays.toString(numbers)); } public static void swap(int[] numbers, int i, int j) { if (numbers[i] == numbers[j]) return; numbers[i] = numbers[i] ^ numbers[j]; numbers[j] = numbers[i] ^ numbers[j]; numbers[i] = numbers[i] ^ numbers[j]; } public static void bubbleSort(int[] numbers) { for (int i = 1; i < numbers.length; i++) { for (int j = 0; j < numbers.length - i; j++) { if (numbers[j] > numbers[j + 1]) swap(numbers, j , j + 1); } } }}
Scala版本实现:
object SortAlg { def sort(number: Int, dataset: List[Int]): List[Int] = dataset match { case List() => List(number) case head :: tail => if (number <= head) number :: dataset else head :: sort(number, tail) } def bubbleSort(numbers: List[Int]): List[Int] = numbers match { case List() => List() case head :: tail => sort(head, bubbleSort(tail)) } def main(args: Array[String]): Unit = { val numbers = List(5, 1, 6, 7, 0, 4, 2, 3) println(bubbleSort(numbers)) }}
0 0
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 修改mysql默认空密码
- linux常用命令
- poj3414 pots 倒水模拟
- 【Hello World】 Hello my friend,nice to meet u ~
- 测试SpringMVC中的控制器
- 冒泡排序
- 2015~2016年程序员上午试题总结
- 【剑指offer】正则表达式匹配
- 【Qt Multimedia】用QMediaPlayer实现简易播放器(1)总览Qt Multimedia
- 孙宝宝摆不正心态的原因
- 打印某年的日历
- Android开发中SQLite实时刷新(数据源观察者模式)
- git建立远程仓库、手动修复冲突
- 堆与优先级队列实现