排序
指将一组数据按照指定的顺序排列的过程
分类:
内部排序:指将需要处理的所有数据都加载到内存储存器中,进行排序,包括交换排序法,选择排序法,插入排序法
外部排序:数据量过大,无法加载到内存储存器中,需要借助外部储存器进行排序,包括合并排序法和直接合并排序法
冒泡排序
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