当前位置:网站首页>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;
}
边栏推荐
- Simple network configuration for equipment management
- 【二叉树】删点成林
- RHSA first day operation
- BGP actual network configuration
- Solve server returns invalid timezone Go to ‘Advanced’ tab and set ‘serverTimezone’ property manually
- Several methods of checking JS to judge empty objects
- Error in compiling libssl
- ES底层原理之倒排索引
- Apache installation problem: configure: error: APR not found Please read the documentation
- The hoisting of the upper cylinder of the steel containment of the world's first reactor "linglong-1" reactor building was successful
猜你喜欢
SQL Lab (32~35) contains the principle understanding and precautions of wide byte injection (continuously updated later)
Completion report of communication software development and Application
leetcode刷题:二叉树20(二叉搜索树中的搜索)
Ctfhub -web SSRF summary (excluding fastcgi and redI) super detailed
An error occurred when vscade tried to create a file in the target directory: access denied [resolved]
爱可可AI前沿推介(7.7)
数据库系统原理与应用教程(009)—— 概念模型与数据模型
Tutorial on the principle and application of database system (011) -- relational database
【PyTorch实战】用PyTorch实现基于神经网络的图像风格迁移
Hi3516 full system type burning tutorial
随机推荐
The hoisting of the upper cylinder of the steel containment of the world's first reactor "linglong-1" reactor building was successful
SQL Lab (32~35) contains the principle understanding and precautions of wide byte injection (continuously updated later)
SQL lab 21~25 summary (subsequent continuous update) (including secondary injection explanation)
全球首堆“玲龙一号”反应堆厂房钢制安全壳上部筒体吊装成功
数据库系统原理与应用教程(007)—— 数据库相关概念
金融数据获取(三)当爬虫遇上要鼠标滚轮滚动才会刷新数据的网页(保姆级教程)
解决 Server returns invalid timezone. Go to ‘Advanced’ tab and set ‘serverTimezone’ property manually
Epp+dis learning path (1) -- Hello world!
数据库系统原理与应用教程(009)—— 概念模型与数据模型
wallys/Qualcomm IPQ8072A networking SBC supports dual 10GbE, WiFi 6
Tutorial on the principle and application of database system (008) -- exercises on database related concepts
静态Vxlan 配置
SQL lab 11~20 summary (subsequent continuous update) contains the solution that Firefox can't catch local packages after 18 levels
Cryptography series: detailed explanation of online certificate status protocol OCSP
Airserver automatically receives multi screen projection or cross device projection
广州市召开安全生产工作会议
2022广东省安全员A证第三批(主要负责人)考试练习题及模拟考试
数据库系统原理与应用教程(011)—— 关系数据库
Utiliser la pile pour convertir le binaire en décimal
【统计学习方法】学习笔记——提升方法