冒泡排序

网友投稿 901 2022-11-12

冒泡排序

冒泡排序

交换类排序的思想是通过一系列交换逆序元素进行排序的方法,经典的交换排序算法有冒泡排序和快速排序。 冒泡排序应该算是最简单的排序算法了,其过程如下: 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)) }}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:GeoHash索引
下一篇:当攀藤 PM2.5 传感器遇上 RT-Thread
相关文章

 发表评论

暂时没有评论,来抢沙发吧~