目录
核心思想:将最小的移动到最左侧,依次排开
- int[] arr={3,1,6,2,5};
-
- // 选择排序 此时i是左边元素此次循环开始的下标
- // arr.length-1 不包括最后一个元素 这个地方没必要包括最后一个
- for(int i=0 ; i
1;i++){ - // 每次循环,都默认第i位是最小的
- int min = i;
- // arr.length 包含最后一位
- for (int j =i+1;j
- if(arr[j]
- // 运行到这里说明j下标小
- min=j;
- }
-
- }
- if(min != i ){
- int temp;
- temp = arr[min];
- arr[min] = arr[i];
- arr[i]= temp;
- }
- }
- for (int i = 0; i < arr.length; i++) {
- System.out.println(arr[i]);
- }
二、冒泡排序算法
核心思想:将最大的移动到右侧
- int[] arr={3,1,6,2,5};
- for (int i=arr.length-1;i>0;i--){
- for(int j =0 ;j
- if(arr[j]>arr[j+1]){
- int temp;
- temp = arr[j];
- arr[j]=arr[j+1];
- arr[j+1]=temp;
- }
- }
- }
- System.out.println(Arrays.toString(arr));
三、二分查找法
- 建立在排序的基础上
- 效率高于遍历查找
- int[] arr={3,1,6,2,5};
- // 开始下标以及结束下标
- int begin=0;
- int end = arr.length-1;
-
- // 假设查找3这个元素
- int element = 3;
- // 先排序
- Arrays.sort(arr);
-
-
- while (begin<=end){
- int mid = (begin+end)/2;
- if (arr[mid]==element){
- // 找到了
- System.out.println(element);
- return ;
- }else if(arr[begin]
- begin = mid+1;
-
- }else if(arr[begin]>arr[mid]){
- end = end-1;
- }
- }
-
相关阅读:
陕西省2022年快递工程类职称评审相关资讯
Mybatis-plus 加入打印sql的log日志
分析和比较深度学习框架 PyTorch 和 Tensorflow
Spring Boot layered(分层) jar 构建docker镜像
LeetCode --- 1266. Minimum Time Visiting All Points 解题报告
基于Keras实战项目-猫狗熊猫分类大战
项目实战:Qt监测操作系统物理网卡通断v1.1.0(支持windows、linux、国产麒麟系统)
【笔记】Ningx(9)HTTPS
【动态规划】dp 路径问题(不同路径、路径最小和、地下城游戏...)
翻译: GitHub Copilot开启AI自动生成代码的时代
-
原文地址:https://blog.csdn.net/weixin_51351637/article/details/127856083