数组之排序

Posted cherry-bail

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组之排序相关的知识,希望对你有一定的参考价值。

常用排序算法:

  冒泡排序

  插入排序

  快速排序

  选择排序

排序算法的时间&&空间复杂度

排序算法的稳定性

冒泡排序——bubbleSort

是一种简单的排序算法,重复地走访要排序的数列,一次比较两个元素,如果它们的顺序错误就把他们交换。走访数列的工作是重复的进行直到没有需要交换。

如果两个数关系不正确——交换——重复1、2步——如果走了一遍发现没有产生交换说明排序完成

时间复杂度 O(n^2) 最好O(n)

选择排序——selectSort

将一个值跟数组剩余依次比较,每次得到当前剩余数中最小/大元素放到数组开头

Public class sort{

public static void bubbleSort(int array[]){

  int t = 0;

  for(int i = 0; i < array.length; i++){

    for(int j = 0; j < array.length-1-i; j++){  //因为每遍历一次都会最少排好一个数字

      if(array[j+1] < array[j])

        swap(array[j], array[j+1]);  //两值交换如果不引入新的变量,可以用a=a+b; b = a-b; a = a-b;

    }

  }

}

 

public static void selectSort(int array[]){

  for(int i = 0; i<array.length;i++){

    for(int j = i+1; j<array.length; j++){

      if(array[i] > array[j])  swap(array[i], array[j]);

    }

  }

}

 

public static void main(String[] args){

  int[] array = new int[]{4,7,1,2,9,3,5,8,6};

  bubbleSort(a);

  for(int i = 0; i<array.length; i++){  //输出数组

    System.out.print(array[i] + " ");

  }

}

}

以上是关于数组之排序的主要内容,如果未能解决你的问题,请参考以下文章

排序算法之快速排序

[AI助力] 算法通关手册 刷题笔记2 数组排序之冒泡排序选择排序

JS排序之快速排序

数组之排序

基本排序之归并排序

八大排序之选择类排序