文章目录

  • 1. 冒泡排序
  • 2. 选择排序
  • 3. 直接插入排序
  • 4. 二分查找

1. 冒泡排序

原理:数组元素两两比较,大的往后放,经过一轮比较后,最大元素在最后面,如此往复。

举例说明:

代码:

//冒泡排序
import java.util.Scanner;
public class Test01 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] arr = new int[n];for (int i = 0; i < n; i++) {arr[i] = sc.nextInt();}for (int j = 0; j < arr.length-1; j++) {   //控制轮次for (int i= 0; i< arr.length-1-j; i++) {  //控制每轮比较的次数if(arr[i]>arr[i+1]){int temp=arr[i];arr[i]=arr[i+1];arr[i+1]=temp;}}}//输出排序后的结果for (int i = 0; i < n; i++) {System.out.print(arr[i]+" ");}}
}

2. 选择排序

原理:每次拿一个元素和后面所有元素挨个比较,小的往前放,经过一轮比较后,最小元素出现在最前面,如此反复。

举例说明:

代码:

//选择排序
import java.util.Scanner;
public class Test02 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] arr = new int[n];for (int i = 0; i < n; i++) {arr[i]=sc.nextInt();}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[i];arr[i]=arr[j];arr[j]=temp;}}}//输出排序后的结果for (int i = 0; i < n; i++) {System.out.print(arr[i]+" ");}}
}

3. 直接插入排序

原理:每次将后面一个元素,插入到之前得到的一个有序序列中,使之仍保持有序。

举例说明:

代码:

//直接插入排序
import java.util.Scanner;
public class Test03 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] arr = new int[n];for (int i = 0; i < n; i++) {arr[i]=sc.nextInt();}for (int i = 1; i < arr.length; i++) {  //控制轮次for(int j=i;j>0;j--){if(arr[j]<arr[j-1]){int temp=arr[j];arr[j]=arr[j-1];arr[j-1]=temp;}}}//输出排序后的结果for (int i = 0; i < n; i++) {System.out.print(arr[i]+" ");}}
}

4. 二分查找

原理:针对一个有序的数据集合,每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素。

举例说明:

代码:

//二分查找
import java.util.Scanner;
public class Test05 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] arr = new int[n];for (int i = 0; i < n; i++) {arr[i]=sc.nextInt();}int m = sc.nextInt();int index=getIndex(arr,m);System.out.println("要查找的数字索引是:"+index);}private static int getIndex(int[] arr, int m) {int minIndex=0;int maxIndex=arr.length-1;int centerIndex=(minIndex+maxIndex)/2;while (minIndex<=maxIndex){if(m==arr[centerIndex]){return centerIndex;}if(m>arr[centerIndex]){minIndex=centerIndex+1;}if(m<arr[centerIndex]){maxIndex=centerIndex-1;}centerIndex=(minIndex+maxIndex)/2;}return -1;}
}

JavaSE(二十四)——冒泡排序、选择排序、直接插入排序以及二分查找相关推荐

  1. Scott Mitchell 的ASP.NET 2.0数据教程之二十四:: 分页和排序报表数据

    下载代码示例 | 下载PDF格式英文教程 导言 分页和排序是在WEB应用程序中展现数据常见的功能.比如,当我们在一个网上书店搜索ASP.NET书籍的时候,可能有几百本相关书籍,但是我们只希望每页显示1 ...

  2. ASP.NET 2.0数据教程之二十四:: 分页和排序报表数据

    导言 分页和排序是在WEB应用程序中展现数据常见的功能.比如,当我们在一个网上书店搜索ASP.NET书籍的时候,可能有几百本相关书籍,但是我们只希望每页显示10条有效记录.而且,我们还希望结果能根据标 ...

  3. C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】

    目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...

  4. cad怎么选择一个对象打散vba_CAD制图的二十四字秘诀!

    就像练武一样,原来CAD也有相应的二十四字秘诀,没想到吧. 当然,倘若大家觉得记住这"秘诀"就能成为一名出色的CAD设计师,那您就真的想多了,做比记住难很多. 但,如果没有大神总结 ...

  5. 十大经典排序算法详解(一)冒泡排序,选择排序,插入排序

    养成习惯,先赞后看!!! 你的点赞与关注真的对我非常有帮助.如果可以的话,动动手指,一键三连吧!!! 目录 1.算法的评判标准 2.排序算法的分类 3.十大经典排序算法-冒泡排序,选择排序,插入排序 ...

  6. JAVASE基础模块二十四(泛型)

    JAVASE基础模块二十四(泛型) 泛型的引出 我们这样定义一个obj类的时候 使用的时候需要向下转型 会很麻烦 public class Fananan {public static void ma ...

  7. 十大排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序

    冒泡排序.选择排序.插入排序.希尔排序.归并排序.快速排序.堆排序.计数排序.桶排序.基数排序的动图与源代码. 目录 关于时间复杂度 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 ...

  8. 算法与数据结构(冒泡排序,选择排序和插入排序的总结)

    冒泡排序,选择排序和插入排序的总结 在规模较小时,或者元素的有序性较高时,插入排序的时间复杂度可以接近 O(n) ,是上述三种排序里表现最好的 一.通过表格我们可以发现,冒泡排序的时间复杂度是要优于选 ...

  9. 02_Python算法+数据结构笔记-冒泡排序-选择排序-插入排序-快排-二叉树

    b站视频:路飞IT学城 清华计算机博士带你学习Python算法+数据结构_哔哩哔哩_bilibili 文章目录 #11 排序介绍 #12 冒泡排序介绍 #13 冒泡排序 #14 选择排序 #15 插入 ...

最新文章

  1. 快起床刷题去,别人把你offer拿走啦
  2. hibernate增删改查的标准范例
  3. 关于多线程的一个例子(UI实时显示)
  4. Cent OS dhcp配置
  5. 小白进阶之GIT篇(1)——创建了分支进行了代码修改但是切换回master分支运行发现代码在master分支也会生效
  6. appender log4j 扩展_Log4j扩展使用--输出地Appender
  7. Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
  8. Spring Boot入门(6)-使用AOP统一处理Web请求日志
  9. 注册岩土工程师计算机专业的能考吗,岩土工程师报考条件
  10. python从键盘输入一个数、计算出大于n的最小素数_python 从键盘任意输入一个正整数n,并找出大于n的最小素数,这个程序怎么写...
  11. 我们真的需要复杂的密码吗?
  12. 迷你计算机笔记本,世界上最小的笔记本电脑,机身小巧仅有7英寸
  13. python对数正态分布函数_将对数正态分布的拟合PDF缩放到python中的histrogram
  14. 全网最全斗音短视频新老账号起号技巧
  15. CSS特效(二):利用html和css制作毛玻璃特效和按钮动画效果
  16. 【jzoj2182】羊羊吃草
  17. JavaScript案例之使用验证码进行简单判断
  18. 调用Tushare数据库绘制K线图
  19. 浙江医改破题看病难 省市级医院高峰排队时间缩至4分钟
  20. C语言实验——求一个3*3矩阵对角线元素之和 (sdut oj)

热门文章

  1. 曼彻斯特解密_曼彻斯特编码解码方法与流程
  2. Data Mining的十种分析方法
  3. hihoCoder1233(2015北京网络赛H题)
  4. 20211205 Nussbaum函数实例
  5. 简单七步让你轻松安全迁移网站
  6. 6.13spring随笔
  7. 【BZOJ1934】善意的投票(网络流)
  8. 【BZOJ2819】Nim 树状数组+LCA
  9. sql server 定时备份数据库
  10. encodeURI、encodeURIComponent、btoa及其应用场景