代码实现
冒泡排序、选择排序和快速排序是三种基本的排序算法。
冒泡排序、选择排序比较像,都是需要使用双重循环,区别就在于冒泡排序在内循环中需要将两个相邻的进行比较,比较之后符合条件还需要进行交换,而选择排序在外循环中就指定了一个元素作为标杆,在内循环中每个元素都和这个标杆进行比较,符合条件的会和外循环中的这个标杆元素进行交换而不是冒泡排序中的相邻两个交换,这样内循环执行外的时候就会得到一个最大或者最小的元素放在开头或者末尾的位置,当外循环执行完毕时整个数组就会成为一个有序数组。
而快速排序采用的是分而治之的思想,同时还需要用到递归的方法,主要就是通过选择一个元素,将比这个元素小的放到左边,比这个元素大的放到右边,这样就可以将元素分为左右两部分,然后再分别对这两部分进行分而治之和递归,即在这两部分中分别选中一个元素,将本部分的元素和选中的元素进行两两比较,小的仿左边,大的放右边,以此类推,直到划分的区间中只有一个元素,这样整个数组就完成了排序,所有的元素都是按照从小到大的顺序排列。
下面分别是冒泡排序、选择排序和快速排序的java代码实现。
- 冒泡排序
int[] data1 = new int[]{100, 32, 43, 12, 324, 67, 87, 5, 20};
int temp = 0;
for (int i = 0; i < data1.length; i++) {//第几轮排序
for (int j = 0; j < data1.length - i - 1; j++) {//内部的两两比较,此次循环后会将大的放在后面
if