当前位置:网站首页>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 .
边栏推荐
猜你喜欢

Detailed introduction of OSPF header message

AutoCAD - graphic input and output

Magnifying glass effect

Unity find the coordinates of a point on the circle

Redis 排查大 key 的4种方法,优化必备

【Leetcode】1352. Product of the last K numbers

Unity get component

AutoCAD - continuous annotation

Unity check whether the two objects have obstacles by ray

2021-10-29
随机推荐
Research on the value of background repeat of background tiling
Rip notes [rip three timers, the role of horizontal segmentation, rip automatic summary, and the role of network]
3dsmax common commands
嵌入式数据库开发编程(五)——DQL
Establish cloth effect in 10 seconds
Applet live + e-commerce, if you want to be a new retail e-commerce, use it!
PostgreSQL surpasses mysql, and the salary of "the best programming language in the world" is low
China needle coke industry development research and investment value report (2022 Edition)
54. Spiral matrix & 59 Spiral matrix II ●●
AutoCAD - scaling
cocos2dx_ Lua particle system
Forecast report on research and investment prospects of Chinese wormwood industry (2022 Edition)
Simple modal box
When will Wei Lai, who has been watched by public opinion, start to "build high-rise buildings" again?
AutoCAD -- dimension break
A three-dimensional button
2022/7/1学习总结
UE4/UE5 虚幻引擎,材质篇,纹理,Compression and Memory压缩和内存
cocos2dx_ Lua card flip
Unity card flipping effect