当前位置:网站首页>Insert sort
Insert sort
2022-07-05 05:08:00 【ximen502_】
The content of the article comes from Data structure Textbook (C Language version )
The textbook explains 4 An insertion sort algorithm , Respectively
1、 Direct insert sort
2、 Binary Insertion Sort
3、2- Path insertion sort
4、 Table insertion sort
There is also a hill sort ( It belongs to insert sort classification )
This article will only 1、2, Two algorithms are practiced and explored , Among them the first 4 The insertion sorting of tables is based on linked lists .1-3 It's based on arrays .
Two algorithms Java The implementation is as follows
/** * Direct insert sort (Straight Insertion Sort) * * Its basic operation is to insert a record into an ordered table , Thus, we can get a new ordered table with one record added . * * Spatial complexity O(1) * Time complexity O(n^2) * * When the number of records to be sorted n When I was very young , This is a good sorting method . however , Usually, the number of records in the sequence to be sorted n * It's big , It is not suitable to use direct insertion sorting . * * @param arr */
void insertSortV1(int[] arr) {
for (int i = 1; i < arr.length; i++) {
if (arr[i] <= arr[i - 1]) {
int temp = arr[i];
arr[i] = arr[i - 1];
int j;
for (j = i - 2; j >= 0 && temp <= arr[j]; j--) {
arr[j + 1] = arr[j]; // Record back
}
arr[j + 1] = temp; // Insert in the correct position
}
}
}// insertSortV1
/** * Binary Insertion Sort (Binary Insertion Sort) * * Because the basic operation of insert sort is to search and insert in an ordered table , Then this " Search operation " You can use " Binary search " To achieve * , The insertion sort thus performed is called a half insertion sort . * * The complexity of half insert sort space is still O(1) * Compare... In terms of time , Half insertion sorting only reduces the number of keyword comparisons , The number of moves recorded remains the same . therefore * The time complexity is still 0 O(n^2) * * @param arr */
void BInsertSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int temp = arr[i];
int low = 0;
int high = i - 1;
while (low <= high) {
int m = (low + high) / 2;
if (temp <= arr[m]) {
high = m - 1;
} else {
low = m + 1;
}
} // while
for (int j = i - 1; j >= high + 1; j--) {
arr[j + 1] = arr[j];
}
arr[high + 1] = temp;
}
}// BInsertSort
@Test
public void fun1() {
int[] arr = {
49, 38, 65, 97, 76, 13, 27, 49 };
// insertSortV1(arr);
BInsertSort(arr);
System.out.println(Arrays.toString(arr));
}
this 2 The space complexity of the implementation of the insertion sort algorithm is O(1), Time complexity is O( n 2 n^2 n2). Half insertion sorting only reduces the number of element comparisons , The number of moves recorded remains the same .
边栏推荐
- Redis 排查大 key 的4种方法,优化必备
- How much do you know about 3DMAX rendering skills and HDRI light sources? Dry goods sharing
- AutoCAD - window zoom
- PostgreSQL 超越 MySQL,“世界上最好的编程语言”薪水偏低
- 3dsmax scanning function point connection drawing connection line
- 669. Prune binary search tree ●●
- Understand encodefloatrgba and decodefloatrgba
- The difference between heap and stack
- cocos2dx_ Lua particle system
- This article is good
猜你喜欢
2022/7/2做题总结
Autocad-- Real Time zoom
Simple modal box
小程序直播+电商,想做新零售电商就用它吧!
Research on the value of background repeat of background tiling
Unity get component
Create a pyGame window with a blue background
Detailed introduction of OSPF header message
Embedded database development programming (V) -- DQL
Redis 排查大 key 的4种方法,优化必备
随机推荐
Embedded database development programming (V) -- DQL
3dsmax scanning function point connection drawing connection line
Ue4/ue5 illusory engine, material chapter, texture, compression and memory compression and memory
Detailed explanation of the ranking of the best universities
cocos2dx_ Lua card flip
win10虚拟机集群优化方案
MD5绕过
The difference between heap and stack
3dsmax snaps to frozen objects
Out and ref functions of unity
Time format conversion
嵌入式数据库开发编程(五)——DQL
Transport connection management of TCP
2022 U.S. college students' mathematical modeling e problem ideas / 2022 U.S. game e problem analysis
Cocos2dx screen adaptation
Kali 2018 full image download
Database under unity
How much do you know about 3DMAX rendering skills and HDRI light sources? Dry goods sharing
A three-dimensional button
GameObject class and transform class of unity