Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

yangchd/SortingAlgorithm

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
14 Commits
 
 
 
 
 
 

Repository files navigation

Sorting Algorithm Language

一、稳定性

  • 稳定:冒泡排序、直接插入排序、归并排序和基数排序

  • 不稳定:选择排序、快速排序、希尔排序、堆排序

二、排序算法的选择

  1. 数据规模较小
  • 待排序列基本序的情况下,可以选择直接插入排序;

  • 对稳定性不作要求宜用简单选择排序,对稳定性有要求宜用插入或冒泡

  1. 数据规模不是很大
  • 完全可以用内存空间,序列杂乱无序,对稳定性没有要求,快速排序,此时要付出log(N)的额外空间。

  • 序列本身可能有序,对稳定性有要求,空间允许下,宜用归并排序

  1. 数据规模很大
  • 对稳定性有求,则可考虑归并排序。

  • 对稳定性没要求,宜用堆排序

  1. 序列初始基本有序(正序),
  • 宜用直接插入,冒泡

三、复杂度

排序算法 最好时间 最差时间 平均时间复杂度 空间复杂度 稳定度
直接插入排序 稳定
希尔排序 不稳定
直接选择排序 不稳定
堆排序 不稳定
冒泡排序 稳定
快速排序 ~ 不稳定
归并排序 稳定
基数排序 O(d(n+r)) O(d(n+r)) O(d(n+r)) O(rd+n) 稳定

About

基于Java语言的排序算法实现

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.