java学习日记20230310-排序

排序

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

分类:

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

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

 

冒泡排序

Bubble Sorting

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

  特点:

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

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

       是一种稳定的排序算法

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

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

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

              最快为 n,最慢为n*n

 

posted @ 2023-03-10 17:33  、子夜  阅读(17)  评论(0)    收藏  举报