直接插入排序
直接插入排序是简单排序中性能最好的
平均时间复杂度:O(n^n / 4)
最好时间复杂度:O(n)
最坏时间复杂度:O(n^n)
直接插入排序版本1
思路:将每次要插入的当前元素依次与左边元素比较,如果左边元素大于当前元素则交换,直到左边元素小于等于当前元素。
1 | package main |
直接插入排序是简单排序中性能最好的
平均时间复杂度:O(n^n / 4)
最好时间复杂度:O(n)
最坏时间复杂度:O(n^n)
思路:将每次要插入的当前元素依次与左边元素比较,如果左边元素大于当前元素则交换,直到左边元素小于等于当前元素。
1 | package main |
1 | package basic_sort |
选择排序
选择排序总结:
三个版本的冒泡排序:
1 | package basic_sort |
冒泡排序
冒泡排序总结:
1 | package basic_sort |
直接插入排序总结
直接插入排序总结:
1 | package advanced_sort |
归并排序
1 | package main |
1 | package main |
1 | package main |
快速排序
思路:采用荷兰国旗的问题进行划分,每次可以划分为3个区间,分别是小于,等于以及大于的区间。
!!!