Java基础【冒泡、选择排序、二分查找】
冒泡排序的思路就是前一个和后一个进行比较,如果大的就交换位置 大的数字后浮
如 12 8 5 31
第一轮 8 5 12 31
第二轮 5 8 12 31
........
代码如下
package com.zuoyan.sort; /**
* 冒泡排序
* @author Administrator
*
*/
public class BubbloSortDemo { public static void main(String[] args) { int []arr = {10,8,20,3,6,22,16};
for(int i =0 ;i< arr.length;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;
}
}
} for (int i : arr) {
System.out.println(i); } } }
2.选择排序
思路就是 将这个数组从头开始遍历
从第一个开始 与他后面的每个数字进行比较,如果遇见比他小的 这个两个数字进行交换位置,
第二个也是,也是从他后面的进行比较,不用比较第一个了,因为第一个已经是整个数组中的最小数字了
.......
代码如下
package com.zuoyan.sort; /**
* 选择排序
* @author Administrator
*
*/
public class SelectSort { public static void main(String[] args) { int [] arr={1,12,11,8,13,89,45,22,61};
for(int i=0 ;i<arr.length;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 : arr) {
System.out.println(i);
}
} }
3.二分查找
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查找的表为有序表。二分查找的目的是查找出元素的索引,有个前提是数组元素必须是有序
package com.zuoyan.sort; /**
* 二分查找算法
* @author Administrator
*
*/
public class BinarySearch { public static void main(String[] args) { int[] arr = {11,22,33,44,55,66,77}; int num = 51;
int index = -1;
int min = 0;
int max = arr.length-1;
int mid = (min+max)/2;
while(true)
{
if(arr[mid] == num)
{
index = mid;
break;
} if(arr[mid]<num)
{
min = mid +1;
mid = (min+max)/2;
} if(arr[mid]>num)
{
max = mid-1;
mid =(max + min)/2;
} if(min>max)
{
break;
} } System.out.println(index); }
}
Java基础【冒泡、选择排序、二分查找】的更多相关文章
- 【Java基础】选择排序、冒泡法排序、二分法查找
1.选择排序: //改进后的选择排序,减少交换的次数 public static void sortSelect(int arr[]) { //用于存放最小数的下标 int s; for (int i ...
- 【java基础】选择排序and冒泡排序
前言 : 今天学习的是J2SE视频里的第五章,数组部分,它里面留了一个经典的作业,就是让我们去从1倒9按一定规格排序,这让我想起了学习vb的时候最最让我头疼的两种排序方法,选择排序法 和 冒泡排序法. ...
- 常见的排序算法(直接插入&选择排序&二分查找排序)
1.直接插入排序算法 源码: package com.DiYiZhang;/* 插入排序算法 * 如下进行的是插入,排序算法*/ public class InsertionSort { pub ...
- Java基础-数组常见排序方式
Java基础-数组常见排序方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 数据的排序一般都是生序排序,即元素从小到大排列.常见的有两种排序方式:选择排序和冒泡排序.选择排序的特 ...
- UVA.10474 Where is the Marble ( 排序 二分查找 )
UVA.10474 Where is the Marble ( 排序 二分查找 ) 题意分析 大水题一道.排序好找到第一个目标数字的位置,返回其下标即可.暴力可过,强行写了一发BS,发现错误百出.应了 ...
- java基础---数组的排序算法(3)
一.排序的基本概念 排序:将一个数据元素集合或序列重新排列成按一个数据元素某个数据项值有序的序列 稳定排序:排序前和排序后相同元素的位置关系与初始序列位置一致(针对重复元素来说,相对位置不变) 不稳定 ...
- 蓝桥网试题 java 基础练习 数列排序
---------------------------------------------------------------------------------------------------- ...
- 【Java SE】如何用Java实现直接选择排序
摘要:直接选择排序属于选择排序的一种,但是它的排序算法比冒泡排序的速度要快一些,由于它的算法比较简单,所以也比较适合初学者学习掌握. 适宜人群:有一定Java SE基础,明白Java的数据类型,数组的 ...
- Java冒泡排序与选择排序
Java排序: 一.冒泡排序算法的运作如下: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. ...
- 常用算法Java实现之选择排序
选择排序算法在每一步中选取最小值来重新排序,通过选择和交换来实现排序. 具体流程如下: 1.首先从原数组中选择最小的1个数据,将其置于第一个位置. 2.然后从剩下的数据中再选择其中最小的一个数据,并将 ...
随机推荐
- Python 字典(Dictionary) values()方法
描述 Python 字典(Dictionary) values() 函数以列表返回字典中的所有值. 语法 values()方法语法: dict.values() 参数 NA. 返回值 返回字典中的所有 ...
- ODBC数据库
ODBC数据源全称是开放数据库互连(Open Database Connectivity),在微软公司开放的数据库结构中的一部分,其实是一个应用程序的接口,主要用于提供数据库的编写应用程序的能力.
- python二叉树的深度遍历之先序遍历流程图
- javascript常用积累
一.JS动画与动作不一致解决: if(!$( "#handle").is(":animated")){ //判断元素是否处于动画状态 } 二.停止事件冒泡 ev ...
- qq网吧弹框如何去掉?如何删掉NetBar文件夹?
qq网吧弹框如何去掉?如何删掉NetBar文件夹?有些qq会弹出qq网吧,让人烦恼.而且点了那个不是网吧的反馈了多次都还会弹出.如何退出关闭删除取消去掉qq网吧呢,下面介绍一种解决方法:1.打开qq安 ...
- golang学习笔记8 beego参数配置 打包linux命令
golang学习笔记8 beego参数配置 打包linux命令 参数配置 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/docs/mvc/contro ...
- 利用iOS中Safari浏览器创建伪Web App
在safari浏览器里有一个“添加到主屏幕”选项,我们可以用来创建伪Web App,下面来了解一下iOS中Safari的私有属性 第一步设置Web App的主屏幕图标: 有两种属性值apple-tou ...
- 51nod 1130 N的阶乘的长度 V2(斯特林近似)
输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3. Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 1000) 第2 - T + ...
- [转载]FileStream读写文件
FileStream读写文件 FileStream类:操作字节的,可以操作任何的文件 StreamReader类和StreamWriter类:操作字符的,只能操作文本文件. 1.FileStream类 ...
- 如何使用Wisdom RESTClient定制满足您个性化需求的API文档?
Wisdom RESTClient 支持自动化测试RESTful API,输出精美的测试报告,生成精美的RESTful API文档. 这里介绍一下如何定制个性化的RESTful API文档. 定制个性 ...