首页 > 编程语言 >java学习日记20230310-排序

java学习日记20230310-排序

时间:2023-03-10 17:46:20浏览次数:29  
标签:20230310 java 复杂度 元素 交换 冒泡排序 排序 储存器

排序

 指将一组数据按照指定的顺序排列的过程

分类:

  内部排序:指将需要处理的所有数据都加载到内存储存器中,进行排序,包括交换排序法,选择排序法,插入排序法

  外部排序:数据量过大,无法加载到内存储存器中,需要借助外部储存器进行排序,包括合并排序法和直接合并排序法

 

冒泡排序

Bubble Sorting

  通过对带排序序列从后向前(从下标较大的元素开始),依次比较相邻的值,若发现逆序则交换,使较大的元素逐渐从前部转移到后部,就像水地下的气泡一样向前冒;

  特点:

     空间复杂度低,时间复杂度高

     升序排序中每一轮比较会把最大的数下沉到最低,所以相互比较的次数每一轮会比前一轮少一次。

       是一种稳定的排序算法

     时间复杂度: (n*n -n)/2。O(n^2)

     空间复杂度:仅仅使用了一个temp ,O(1)

       冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,是不会再交换的;如果两个相等的                元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法

              最快为 n,最慢为n*n

 

标签:20230310,java,复杂度,元素,交换,冒泡排序,排序,储存器
From: https://www.cnblogs.com/DragonJack/p/17203965.html

相关文章

  • java-IO-字节流读数据(一次读一个字节数据)
              ......
  • 拓扑排序
      拓扑排序的核心就是找入度为零的点,然后把于该点相连接的边去掉,同时更新剩余点的入度,由于n可能很大,需要邻接表,(这里用vector模拟),也可以学习链式向前星。点击查看代......
  • JAVA WEB项目文件夹上传下载源代码
    ​ 一、功能性需求与非功能性需求要求操作便利,一次选择多个文件和文件夹进行上传;支持PC端全平台操作系统,Windows,Linux,Mac支持文件和文件夹的批量下载,断点续传。刷......
  • 1_JAVAEE简介
    什么是JavaEEJavaEE(JavaEnterpriseEdition),Java企业版,是一个用于企业级web开发平台。最早由Sun公司定制并发布,后由Oracle负责维护。JavaEE平台规范了在开发企业级web应用......
  • 1_JAVAEE简介
    什么是JavaEEJavaEE(JavaEnterpriseEdition),Java企业版,是一个用于企业级web开发平台。最早由Sun公司定制并发布,后由Oracle负责维护。JavaEE平台规范了在开发企业级web应用......
  • java学习日记20230310-数组
    数组数组/排序/查找数组可以存放多个统一类型的数据,数组本身也是一种数据类型,引用类型;    array.length标识数组的大小/长度数组的定义数据类型[]数组名......
  • java-IO-字节流写数据加异常处理
       ......
  • 如何通过Java程序加密或者解密PDF文档
    PDF文档加密是一种用于保护文件内容的功能。加密后的文档需要提供密码才能打开和查看。这一功能有效防止未经授权的访问、复制和修改PDF文件。FreeSpire.PDFforJava支......
  • java-IO-字节流写输入的三种方式
        ......
  • java自定义类数组的初始化
    也就是说,在声明了自定义类的数组之后,对每一个数组元素的初始化,都要为其new一个对象出来使得指针指向该对象,Java语言本身是不提供在自定义类数组声明时候自动创建新对象的方......