大家好,我是小新,我来为大家解答以上问题。java排序算法时间复杂度,java排序算法很多人还不知道,现在让我们一起来看看吧!
1、算法和语言无关吧,语言只是把具体的算法实现出来而已。据我了解的排序算法11-13种。排序算法嘛 主要就是个思想而已。不同的算法时间复杂度不一样,空间复杂度也不一样,当然执行的效率也不一样。当然采用哪种算法还取决于你要实现什么样的功能。就好比说:要同时尽快的找出最大最小,或者尽快的找出最值的位置等等。冒泡排序(bubble sort) — O(n2)
2、鸡尾酒排序 (Cocktail sort, 双向的冒泡排序) — O(n2)
3、插入排序 (insertion sort)— O(n2)
4、桶排序 (bucket sort)— O(n); 需要 O(k) 额外 记忆体
5、计数排序 (counting sort) — O(n+k); 需要 O(n+k) 额外 记忆体
6、归并排序 (merge sort)— O(n log n); 需要 O(n) 额外记忆体
7、原地归并排序 — O(n2)
8、二叉树排序 (Binary tree sort) — O(n log n); 需要 O(n) 额外记忆体
9、鸽巢排序 (Pigeonhole sort) — O(n+k); 需要 O(k) 额外记忆体
10、基数排序 (radix sort)— O(n·k); 需要 O(n) 额外记忆体
11、Gnome sort — O(n2)
12、Library sort — O(n log n) with high probability, 需要 (1+ε)n 额外记忆体不稳定
13、选择排序 (selection sort)— O(n2)
14、希尔排序 (shell sort)— O(n log n) 如果使用最佳的现在版本
15、Comb sort — O(n log n)
16、堆排序 (heapsort)— O(n log n)
17、Smoothsort — O(n log n)
18、快速排序 (quicksort)— O(n log n) 期望时间, O(n2) 最坏情况; 对於大的、乱数串列一般相信是最快的已知排序
19、等。
本文到此讲解完毕了,希望对大家有帮助。