简单插入排序
2018-03-21 14:29
204 查看
思想
抽出一个元素,在其前面的元素中找到适当的位置进行插入
设数据序列有n个元素,
最好情况:一个排好序的序列,如{1,2,3,4,5,6}。 每趟元素与i-1个元素比较的次数是1次。 因为前i-1个元素排好序 所以比较次数为n-1。时间复杂度是O(n)
最坏情况:待排序的序列是完全倒序的,如{6,5,4,3,2,1}。 当i=2时,4与i-1元素的比较次数是2次,以此类推。比较次数n*(n-1)/2=n^2/2 时间复杂度是O(n^2)
抽出一个元素,在其前面的元素中找到适当的位置进行插入
// 这种方式 是将`待插入元素`逐个跟i-1个已排序元素比较,并交换位置 public static void simpleSort(int a[]) { for (int i = 1; i < a.length; i++) { int temp = a[i], j; for (j = i - 1; j >= 0; j--) { if (a[j] > temp) { swap(a[j], temp); } } } }
设数据序列有n个元素,
最好情况:一个排好序的序列,如{1,2,3,4,5,6}。 每趟元素与i-1个元素比较的次数是1次。 因为前i-1个元素排好序 所以比较次数为n-1。时间复杂度是O(n)
最坏情况:待排序的序列是完全倒序的,如{6,5,4,3,2,1}。 当i=2时,4与i-1元素的比较次数是2次,以此类推。比较次数n*(n-1)/2=n^2/2 时间复杂度是O(n^2)
相关文章推荐
- 插入排序就这么简单
- 简单插入排序
- 插入排序的简单解释(C++)
- LeetCode 147. Insertion Sort List插入排序链表的高效简单解法
- java几种排序简单实现(快速排序,冒泡排序,直接插入排序)
- 简单排序-选择、插入、冒泡排序
- 简单排序方法——直接插入排序
- 简单插入排序(Insertion Sort)——插入类排序法(Java实现)
- 常用的排序算法:冒泡,简单选择,直接插入,快速排序,堆排序
- 简单插入排序和shell插入排序【C语言】
- 【LintCode 简单】173. 链表插入排序
- 三种最简单的排序算法(直接插入排序、冒泡排序、简单选择排序)
- (第3讲)简单排序:冒泡。选择。插入
- java实现三种简单排序以及改良:冒泡排序,选择排序,直接插入排序
- 【算法】简单插入排序与希尔排序
- 用单链表对直接插入排序的简单实现
- 简单排序之直接插入排序
- 三种最简单基础的排序 选择排序 冒泡排序 直接插入排序 运用了函数指针数组
- 简单插入排序
- WPF对于xml的简单操作(下下)插入节点并排序