当前位置:网站首页>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 .
边栏推荐
- An article takes you to thoroughly understand descriptors
- Unity sends messages and blocks indecent words
- AutoCAD - full screen display
- Personal required code
- UE4/UE5 虚幻引擎,材质篇,纹理,Compression and Memory压缩和内存
- Database under unity
- cocos_ Lua loads the file generated by bmfont fnt
- Cocos progress bar progresstimer
- Collapse of adjacent vertical outer margins
- Unity card flipping effect
猜你喜欢
UE fantasy engine, project structure
嵌入式数据库开发编程(五)——DQL
An article takes you to thoroughly understand descriptors
Unity check whether the two objects have obstacles by ray
LeetCode之單詞搜索(回溯法求解)
Ue4/ue5 illusory engine, material chapter, texture, compression and memory compression and memory
Generate filled text and pictures
Unity parallax infinite scrolling background
"Measuring curve length" of CAD dream drawing
AutoCAD - feature matching
随机推荐
Page countdown
Understand encodefloatrgba and decodefloatrgba
PostgreSQL surpasses mysql, and the salary of "the best programming language in the world" is low
Unity card flipping effect
cocos_ Lua listview loads too much data
2022/7/2做题总结
Embedded database development programming (zero)
64 horses, 8 tracks, how many times does it take to find the fastest 4 horses at least
Data is stored in the form of table
Three dimensional dice realize 3D cool rotation effect (with complete source code) (with animation code)
AutoCAD - Zoom previous
嵌入式数据库开发编程(五)——DQL
Unity intelligent NPC production -- pre judgment walking (method 1)
Autocad-- Real Time zoom
Time format conversion
3dsmax common commands
LeetCode之單詞搜索(回溯法求解)
BUUCTF MISC
使用命令符关闭笔记本自带键盘命令
Unity find the coordinates of a point on the circle