我是靠谱客的博主 斯文蛋挞,这篇文章主要介绍排序算法---直接插入排序(3),现在分享给大家,希望可以做个参考。

直接插入排序基本思想是每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。
这里写图片描述

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.zust.edu.sort; import org.junit.Test; public class DirectInsertionSort { public static void swap(int []arr,int a,int b){ arr[a] = arr[a]+arr[b]; arr[b] = arr[a]-arr[b]; arr[a] = arr[a]-arr[b]; } /** * 插入排序 * * @param arr */ @Test public void insertionSort() { int[] arr = {5,4,1,2,3}; for (int i = 1; i < arr.length; i++) { int j = i; while (j > 0 && arr[j] < arr[j - 1]) { swap(arr,j,j-1); j--; } } //输出结果 for(int i = 0;i<arr.length;i++){ System.out.print(arr[i]); } } }

简单插入排序在最好情况下,需要比较n-1次,无需交换元素,时间复杂度为O(n);在最坏情况下,时间复杂度依然为O(n2)。但是在数组元素随机排列的情况下,插入排序还是要优于上面两种排序的。

最后

以上就是斯文蛋挞最近收集整理的关于排序算法---直接插入排序(3)的全部内容,更多相关排序算法---直接插入排序(3)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部