Java算法 01-排序算法

十大排序算法

稳定性:相同数字排序前后的顺序不改变。

1. N方排序(三明治)

  • 冒泡排序(稳定)最好N,
  • 选择排序(不稳定)最好N方
  • 直接插入排序(稳定)最好N

2. NlogN排序(四叶草)

  • 快速排序
  • 希尔排序
  • 归并排序
  • 堆排序

3. 其他(三明治)计数桶的基数

  • 计数排序
  • 桶排序
  • 基数排序

一、冒泡排序

1. 普通版本

public void bubbleSort(int[] nums){
	for(冒泡 n-1){}
		for(大的冒泡到最后){}
}

2.改进版本

public void bubbleSort(int[] nums){
	for(冒泡 n-1){}
		Boolean flagSwap = false;
		for(大的冒泡的最后){}
}

二、选择排序

public void selectSort(int[] nums){
	for(选择n - 1){}
		for(遍历找最大,放到未排序的末尾){}
}

三、插入排序

插入排序

四、快速排序

二叉树的后续遍历

哨兵+挖坑+交换+递归

五、希尔排序

对插入排序进行分组,主键减小分组数
for(int gap=arr.length/2; gap>0; gap/=2)

六、归并排序

二叉数的前序遍历

七、 堆排序

升序大顶堆,降序小顶堆

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值