排序算法:冒泡和选择排序

来源:互联网 发布:lol韧性算法 编辑:程序博客网 时间:2024/05/16 12:12
  • 引言

排序的算法其实很简单,平时使用的频率也不是很高,但是非常经典,重要的是这种算法的思想。

  • 排序算法的示意图

    这里写图片描述

  • 算法说明

冒泡排序:

冒泡排序的思想就是从最低端开始,比较相邻的两个数据,数据大的下沉,数据小的上升。这样比较一轮,最顶端的数据就是最小的。第二轮同样从最低端开始比较,比较到倒数第二个停止,以此类推直到所有的数据全部比较结束。则数据就会按照从小到大的顺序一次由上而下排列。

选择排序:

选择排序的思想就是使用第一个数据为基准,和所有的数据比较,只要数据比第一个数据小就要交换位置,确保第一个数据是最小的;第二轮比较以第二个数据为基准,依次比较,就会获取第二个数据在第二轮中最小;依次类推直到数据全部比较结束,数据就会按照由小及大的顺序排列。

  • 代码说明
public class SortDemo {    public static void main(String[] args) {        int[] arr = {8,5,9,21,45,14,6,4};        //bubbleSort(arr);        SelectionSort(arr);        for (int a : arr) {            System.out.print(a+" ");        }    }    /*        着重注意:算法使用嵌套for循环的条件    */    //选择排序    public static void SelectionSort(int[] arr) {        for (int i = 0; i < arr.length; i++) {            for (int j = i+1; j < arr.length; j++) {                if(arr[i] < arr[j]){                    int temp = arr[i];                    arr[i] = arr[j];                    arr[j] = temp;                }            }        }    }    //冒泡排序    public static void bubbleSort(int[] arr) {        for (int i = arr.length-1; i > 0; i--) {            for (int j = 0; j < i; j++) {                if(arr[j] < arr[j+1]){                    int temp = arr[j];                    arr[j] = arr[j+1];                    arr[j+1] = temp;                }            }        }    }}/*    结果:45 21 14 9 8 6 5 4 */
1 0
原创粉丝点击