当前位置:网站首页>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 .
边栏推荐
- 669. 修剪二叉搜索树 ●●
- Chinese notes of unit particle system particle effect
- Django reports an error when connecting to the database. What is the reason
- China needle coke industry development research and investment value report (2022 Edition)
- 嵌入式数据库开发编程(六)——C API
- 小程序直播+电商,想做新零售电商就用它吧!
- 54. 螺旋矩阵 & 59. 螺旋矩阵 II ●●
- Cocos2dx screen adaptation
- Detailed introduction of OSPF header message
- Unity sends messages and blocks indecent words
猜你喜欢
AutoCAD - scaling
Leetcode word search (backtracking method)
AutoCAD - full screen display
AutoCAD -- dimension break
Unity parallax infinite scrolling background
django连接数据库报错,这是什么原因
54. Spiral matrix & 59 Spiral matrix II ●●
Unity ugui source code graphic
Research on the value of background repeat of background tiling
AutoCAD - workspace settings
随机推荐
This article is good
AutoCAD - feature matching
小程序直播+電商,想做新零售電商就用它吧!
China needle coke industry development research and investment value report (2022 Edition)
Sqlserver stored procedures pass array parameters
Three dimensional dice realize 3D cool rotation effect (with complete source code) (with animation code)
Chinese notes of unit particle system particle effect
Data is stored in the form of table
被舆论盯上的蔚来,何时再次“起高楼”?
cocos_ Lua listview loads too much data
Do a small pressure test with JMeter tool
Out and ref functions of unity
The next key of win generates the timestamp file of the current day
PostgreSQL 超越 MySQL,“世界上最好的编程语言”薪水偏低
中国金刚烷行业研究与投资预测报告(2022版)
Collapse of adjacent vertical outer margins
Recherche de mots pour leetcode (solution rétrospective)
AutoCAD - window zoom
Cocos2dx screen adaptation
Animation