排序算法-java版本

冒泡排序

原理:相邻的数据两两比较,小的放前面,大的放后面

java 复制代码
int[] arr={3,5,2,1,4}
for(int i=0;i<arr.length-1;i++){
	for(int j=0;j<arr.length-1-i;j++){
		if(arr[j]>arr[j+1]){
			int temp=arr[j];
			arr[j]=arr[j+1];
			arr[j+1]=temp;
			}
		}
	}

选择排序

升序原理:拿当前元素和其后面所有元素都进行比较,如果有比当前元素小的那么就喝当前元素进行交换位置,直到所有元素全部比较完

java 复制代码
int[] arr={4,1,5,3,2}
for(int i=0;i<arr.length-1;i++){
	for(int j=i+1;j<arr.length;j++){
		if(arr[i]<arr[j]{
			int temp=arr[j];
			arr[i]=arr[j];
			arr[j]=temp;
			}
		}
	}

二分查找法

前提:数组中元素需要有序

java 复制代码
public static boolean searchKey(int[] arr,int key){
	int min=0;
	int max=arr.length-1;
	int mid;
	boolean flag=false;
	while(min<=max){
		mid=(min+max)/2;
		int num=arr[mid];
		if(num==key){
			flag=true;
			break;
			}else if(num>key){
				max=mid-1;
				}else if(num<key){
					min=mid+1;
					}
				}
			return flag;
		}
				
		
相关推荐
1 9 J几秒前
Java 上机实践4(类与对象)
java·开发语言·算法
Code apprenticeship1 分钟前
Java面试题(2)
java·开发语言
憨子周1 小时前
2M的带宽怎么怎么设置tcp滑动窗口以及连接池
java·网络·网络协议·tcp/ip
passer__jw7672 小时前
【LeetCode】【算法】3. 无重复字符的最长子串
算法·leetcode
passer__jw7672 小时前
【LeetCode】【算法】21. 合并两个有序链表
算法·leetcode·链表
sweetheart7-72 小时前
LeetCode22. 括号生成(2024冬季每日一题 2)
算法·深度优先·力扣·dfs·左右括号匹配
霖雨3 小时前
使用Visual Studio Code 快速新建Net项目
java·ide·windows·vscode·编辑器
SRY122404193 小时前
javaSE面试题
java·开发语言·面试
Fiercezm3 小时前
JUC学习
java
无尽的大道3 小时前
Java 泛型详解:参数化类型的强大之处
java·开发语言