当前位置:网站首页>Sorting, dichotomy
Sorting, dichotomy
2022-07-07 12:35:00 【Xiaobai shelter】
One 、 matters needing attention
1 name :
Mandatory rules : Numbers , Underline , Case letters , Dollar symbol , The number can't start , You can't use keywords and reserved words
Non mandatory rules : Look at the text and know the meaning , Hump nomenclature
Variable name and method name , Initial lowercase user, userService
Class names are capitalized User , UserService
2 notes
3 communicate
Two 、 Sort
Sort This means that the saved elements are sorted and stored according to certain rules
such as achievement Sort in descending order , Top three in the class Just take the first three data
2.1 Bubble sort
1 Compare adjacent elements . If the first one is bigger than the second one , Just swap them .
2 Do the same for each pair of adjacent elements , From the beginning of the first couple to the end of the last couple . At this point , The last element should be the largest number .
3 Repeat the above steps for all elements , Except for the last one . 4 Keep repeating the above steps for fewer and fewer elements each time , Until there's no pair of numbers to compare .
2.2 Selection sort
1 Put the smallest one on the left and take out the first one every time , The assumption is the smallest , Then compare with the following one by one , If there is one smaller than the first , Just exchange subscripts after a round of comparison , The subscript of the smallest element has been obtained , Then put it in the front for transposition
2 Repeat this step , Until after the current element When there are no other elements End
3. Look for the element
3.1 In order to find
3.2 Two points search
/**
* Two points search , Also known as half query
*
* 1 The data must be orderly
*
* 2 Generally used for fixed data , Because of order , So adding and deleting is a little more troublesome , Also consider the element shift problem
*
* 3 Both ascending and descending are OK , Just change the algorithm judgment
*
* 4 Random query performance is good
*
* Algorithm implementation
*
* 1 Determine the beginning and end of the intermediate data
* 2 With target data and Compare intermediate data
* 3 If the target data is equal to the intermediate data , Return the index of intermediate data
* 4 If the target data is larger than the intermediate data , Then continue to search in the second half , start = middle +1, End unchanged , Then generate intermediate data
* 5 If the target data is smaller than the intermediate data , Take the first half , Initial invariance , end = middle -1, Then generate intermediate data
* 6 Repeat the above steps , If you start Greater than end Description not found , return -1
*
* @param arr
* @param target
* @return
*/
public static int binarySearch(int[] arr, int target) {
// 1 Determine the beginning and end of the intermediate data
int startIndex = 0;
int endIndex = arr.length-1;
int m = (startIndex+endIndex) /2;
// Cycle comparison
while (startIndex <= endIndex) {
// 3 If the target data is equal to the intermediate data , Return the index of intermediate data
if (target == arr[m]) {
return m;
}
// If the target data is larger than the intermediate data , Then continue to search in the second half , start = middle +1, End unchanged , Then generate intermediate data
if (target > arr[m]) {
startIndex=m+1;
}else{
// If the target data is smaller than the intermediate data , Take the first half , Initial invariance , end = middle -1, Then generate intermediate data
endIndex = m-1;
}
// Generate intermediate data
m = (startIndex+endIndex) /2;
}
// Can be implemented here , Indicates that there is no
return -1;
}
边栏推荐
- The hoisting of the upper cylinder of the steel containment of the world's first reactor "linglong-1" reactor building was successful
- ES底层原理之倒排索引
- 浅谈估值模型 (二): PE指标II——PE Band
- Airserver automatically receives multi screen projection or cross device projection
- 解决 Server returns invalid timezone. Go to ‘Advanced’ tab and set ‘serverTimezone’ property manually
- ps链接图层的使用方法和快捷键,ps图层链接怎么做的
- RHSA first day operation
- 编译 libssl 报错
- 通讯协议设计与实现
- 数据库系统原理与应用教程(007)—— 数据库相关概念
猜你喜欢
Inverted index of ES underlying principle
Attack and defense world - PWN learning notes
leetcode刷题:二叉树19(合并二叉树)
OSPF exercise Report
2022聚合工艺考试题模拟考试题库及在线模拟考试
Airserver automatically receives multi screen projection or cross device projection
Ctfhub -web SSRF summary (excluding fastcgi and redI) super detailed
数据库系统原理与应用教程(011)—— 关系数据库
SQL Lab (36~40) includes stack injection, MySQL_ real_ escape_ The difference between string and addslashes (continuous update after)
2022危险化学品生产单位安全生产管理人员考题及在线模拟考试
随机推荐
DOM parsing XML error: content is not allowed in Prolog
千人规模互联网公司研发效能成功之路
浅谈估值模型 (二): PE指标II——PE Band
Will the filing free server affect the ranking and weight of the website?
【统计学习方法】学习笔记——第四章:朴素贝叶斯法
2022A特种设备相关管理(锅炉压力容器压力管道)模拟考试题库模拟考试平台操作
SQL Lab (46~53) (continuous update later) order by injection
Tutorial on principles and applications of database system (007) -- related concepts of database
JS to convert array to tree data
Xiaohongshu microservice framework and governance and other cloud native business architecture evolution cases
数据库系统原理与应用教程(007)—— 数据库相关概念
解密GD32 MCU产品家族,开发板该怎么选?
What is an esp/msr partition and how to create an esp/msr partition
Typescript interface inheritance
Static vxlan configuration
Error in compiling libssl
idea 2021中文乱码
File upload vulnerability - upload labs (1~2)
Tutorial on the principle and application of database system (008) -- exercises on database related concepts
SQL Lab (41~45) (continuous update later)