当前位置:   article > 正文

Java中常用的排序算法(动态演示)_java实现向上向下动态排序

java实现向上向下动态排序

1.前言

  • 这篇文章讲解的是Java中或者面试中常用的**排序算法**。
  • 文章中实例  [linhaojian的Github](https://github.com/linhaojian

2.复杂度

复杂度.png

  • 相关概率

稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。
不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。
时间复杂度:对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规律。
O(N) :  for(int i=0;i<10:i++){};
O(N*N) :  for(int i=0;i<10:i++){for(int i=0;i<10:i++){}};
O(log2n) :  就是将循环次数/2;
O(nlog2n) :  就是循环数据的次数1分为2;
空间复杂度:是指算法在计算机内执行时所需存储空间的度量,它也是数据规模n的函数。


3.排序算法

3.1 冒泡
  • 描述:
    1.比较集合相邻2个元素,如果前者大于后者交换他们的位置。这一点会得出最大的元素 & 放置在集合最后
    2.持续对剩下的元素进行1的操作。
  • 演示:
    冒泡排序.gif
  • 代码:
 public static void bubbleSort(int[] numbers)
    {
   
        int temp = 0;
        int size = numbers.length;
        for(int i = 0 ; i < size-1; i ++)
        {
   
            for(int j = 0 ;j < size-1-i ; j++)
            {
   
                if(numbers[j] > numbers[j+1])  //交换两数位置
                {
   
                    temp = numbers[j];
                    numbers[j] = numbers[j+1];
                    numbers[j+1] = temp;
//                    System.out.println(Arrays.toString(numbers));
                }
            }
//            System.out.println("------------");
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
3.2 选择
  • 描述:
    1.在未排序序列中找到最小元素存放到排序序列的起始位置<
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/909950
推荐阅读
相关标签
  

闽ICP备14008679号