最常见的一些基本算法,比如折半查找,选择排序,冒泡排序。
折半查找,是它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列     即数组内元素必须是有序的才可以用折半查找的办法。

 //折半查找public static int halfSearch(int arr[],int key){int min,mid,max;min=0;max=arr.length-1;while(min<=max)//在min不大于max这个条件下,不断的折半查找{mid=(min+max)/2;if(arr[mid]>key)max=mid-1;else if (arr[mid]<key) min=mid+1;elsereturn mid;}return -1;}

选择排序,是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。就相当于,军训时候排队,教练从队中选择最小的放在前面,第二小的放在第二位,以此类推。

public static void selectSort(int arr[]){for (int x=0;x<arr.length-1 ;x++ ) {for (int y=x+1;y<arr.length ;y++ ) {if(arr[x]>arr[y]){int temp=arr[x];arr[x]=arr[y];arr[y]=temp;}}}}

冒泡排序,重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。就想一块石头最终会沉下去,而最轻的会冒泡上来,也就是每次排序都会至少确定一个数的位置是最终位置。

public static void BubbleSort(int[] arr){int flag=0;//设定标志,如果第一次循环比较时没有发生交换,说明数组是升序排序,不用比较排序,提交结束循环。for (int x=0;x<arr.length-1 ;++x ) {for (int y=0;y<arr.length-x-1 ;y++ ) {if(arr[y]>arr[y+1]){int temp=arr[y];arr[y]=arr[y+1];arr[y+1]=temp;flag=1;}}if (flag==0) {System.out.println("No Sort");break;}}
}

此外,还有其他的一些排序算法,大家都可以再了解下,像快速排序,希尔排序,归并排序等。每种排序算法都有其优缺点。

Java小结(四)——折半查找、选择排序、冒泡排序相关推荐

  1. Java算法--第二章--查找与排序(2)递归基础--佩波那契最大公约数插入排序汉诺塔

    Java算法–第二章–查找与排序(2)递归基础 一.找重复 1.找到一种划分方法 2.找到递推公式或者等价转换 都是父问题转化为求解子问题 二.找变化的量 变化的量通常要作为参数 三.找出出口 代码: ...

  2. 选择排序 冒泡排序 二分查找

    选择排序 int [] arr = {2,48,28,32,90,12}; for(int i= 0: i < arr.length - 1;i++){ for(int j = i + 1; j ...

  3. 王道八大排序:直接插入排序 折半插入排序 希尔排序 冒泡排序 快速排序 归并排序 基数排序

    文章目录 1.插入排序 1.1直接插入排序 1.2折半插入排序 1.3希尔排序 2.交换排序 2.1冒泡排序 2.2快速排序 3.选择排序 3.1简单选择排序 3.2堆排序 4.归并排序 5.基数排序 ...

  4. java基础2:this、static、final、abstract关键字、代码块、生成API工具包、继承、多态、方法重载和重写,抽象类、接口、常见异常、java权限修饰符、选择排序思想和程序和内部类

    1.this关键字 this表示当前类对象的地址空间值的引用.就是说,this代表了new出来的对象 其最大作用就是解决了构造器中局部变量隐藏成员变量.即用this.变量名 = 变量名 区分. 2.s ...

  5. 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/

    大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...

  6. 【算法拾遗(java描写叙述)】--- 选择排序(直接选择排序、堆排序)

    选择排序的基本思想 每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,知道所有记录排序完毕.主要有两种选择排序方法:直接选择排序(或称简单选择排序)和堆排序. 直接选择排序 ...

  7. 用java写一个折半查找_用Java写一个折半查找。

    import java.util.Comparator; public class MyUtil { public static > int binarySearch(T[] x, T key) ...

  8. 选择排序-冒泡排序-归并排序-快速排序-插入排序

    选择排序 基本思想: 设所排序序列个数为N,i取1,2,3-n-1,从N-i+1个记录(Ri,Ri+1-.Rn)中找出排序码最小的记录,与第i个记录交换,执行N-1次后完成序列的排序. //选择排序 ...

  9. 选择排序java从小到大代码_java中选择排序与归并排序的内容,详细解析

    上次我们已经为大家介绍过java中插入.分治和快速排序的内容,今天再来为大家介绍一下java中选择排序与归并排序的具体内容,并且通过实际的代码为大家解析. 首先我们需要了解的是,选择排序也是一种简单直 ...

  10. iOS swift 选择排序 冒泡排序 快速排序

    返回上级目录:iOS 算法题 三大经典排序 | 冒泡排序,选择排序,快速排序 - 知乎 文章目录 1.选择排序 2.冒泡排序 3.快速排序 1.选择排序 //选择排序 func rankSelect( ...

最新文章

  1. 因果图方法中的基本符号
  2. linux中的tasklet机制【转】
  3. 最全面的Linux指令大全
  4. Angular26 ng-content和ng-container、投影的使用
  5. Java 理论与实践: 用弱引用堵住内存泄漏---转载
  6. 计算机删除百度云盘图标,win10系统百度云盘图标删除的操作方法
  7. Java 运行时数据区域
  8. 树莓派 zero linux,树莓派 zero基本调试
  9. 在电脑搭建oracle服务器端,oracle 服务器端搭建(C#开发环境)
  10. 国际千人基因组计划数据库怎么用起来?
  11. 【今日CS 视觉论文速览】 9 Jan 2019
  12. 承接各类软件开发项目
  13. java 链表算法_数据结构算法Java版(一) 链表
  14. 【时间序列预测】基于matlab RBF神经网络时间序列预测【含Matlab源码 1336期】
  15. Redis数据库入门基础知识
  16. 人工智能核心能力包括哪些层面?
  17. 资阳与“华为”携手共建资阳天府云计算中心
  18. Vue之如何调用高德地图步骤详解
  19. 谷歌宣布搜索引擎多个新 AI 功能,听歌识曲 15 秒完成匹配
  20. php 合成图片、合成圆形图片

热门文章

  1. 文字处理的标签及属性
  2. Leetcode题解(26)
  3. 已知服务器ftp的账号密码,求解数据库表的内容
  4. ThinkPHP CURD返回结果参考
  5. Python: adb自动化ce'shi
  6. Python学习笔记:TypeError: not all arguments converted during string formatting
  7. 梯度反向传播求解示例
  8. 【Python】matplotlib.pyplot 标题换行
  9. Ubuntu通过windows代理上网
  10. Python5:Script