python数据结构-最全的六种排序

1.冒泡排序

  1. 比较相邻的元素,如果第一个比第二个大,那就交换位置
  2. 让大的元素跟下一个相邻的元素作比较,如果大于交换位置
  3. 对所有元素重复以上步骤(除了最后一个),直到没有任何一个需要作对比

2.选择排序:

  1. 从未排序序列中找到最小的元素放到序列的初始位置,
  2. 再从剩余未排序序列中找到最小的元素放到已排序序列的末端
  3. 以此类推直到所有元素排序完成

3.插入排序:

  1. 对于未排序的元素,在已排序的序列中从后向前进行扫描,找到相应位置并插入,
  2. 需要反复把已经排序好的元素逐步向后挪位,为新元素提供插入空间。

4.快速排序:

  • 从数列中挑出一个元素,成为“基准数”(通常为第一个元素)
  • .重新排序数列,比基准数小的放在左边,比基准数大的放在右边
  • (相同的数可以在任一一边)分区结束后,基准数位于数列中间位置
  • 递归的把小于基准数的子数列和大于基准数的子数列排序

5..希尔排序:

  1. 以间隔为n进行对待
  2. 分成n个子序列,并对n个子序列以此进行插入排序
  3. 然后整合,获得新的序列
  4. 缩小间隔,再以间隔对待,进行插入排序
  5. 希尔排序是不稳定的,但优化了插入排序的平均时间

6.归并排序:

  1. 按对半分,分成两半。
  2. 对两部分,分别进行排序(递增)。
  3. 合并两个序列,左右比较取小的值

原文地址:https://www.cnblogs.com/mengxinfeng/p/12545544.html