文档章节

JAVA学习笔记(4-2-数组排序|查找)

Almon
 Almon
发布于 2016/07/03 22:19
字数 366
阅读 4
收藏 0

冒泡排序:相邻的两个元素进行比较,如果符合条件则换位

        在堆内存中频繁的换位置会使效率变低


class ArrayDemo5{	//冒泡排序
	public static void bubSort(int[] arr){
		for(int x=0;x<arr.length-1;x++){
			for(int y=0;y<arr.length-x-1;y++){//-x:让每一次比较的元素减少
				if(arr[y]>arr[y+1]){	  //-1:避免角标越界
					int temp=0;
					temp=arr[y];
					arr[y]=arr[y+1];
					arr[y+1]=temp;
				}
			}
		}
	}
}

Arrays.sort(数组名)——排序指令(从小到大)


排序——位置置换


class ArrayDemo6{	//位置置换功能
	public static void swap(int[] arr,int a,int b){
		int temp=arr[a];
		arr[a]=arr[b];
		arr[b]=temp;
	}

折半查找

    提高效率,但是必须要保证该数组是有序数组

class ArrayDemo7{	//查找关键值
	public static int halfSearch(int[] arr,int key){	//折半查找
		int min,max,mid;
		min=0;
		max=arr.length-1;
		mid=(max+min)/2;
		while(arr[mid]!=key){
			if(key>arr[mid]){
				min=mid+1;
			}
			else if(key<arr[mid]){
				max=mid-1;
			}
            else if(min>max){
                return -1;
            }
			mid=(max+min)/2;
		}
	return mid;
	}
	public static void main(String[] args){
		int[] arr={2,3,4,5,6,7,8,9};
		int index=halfSearch(arr,3);
		System.out.println(index);
	}
}

方法2

class ArrayDemo7{	//查找关键值
	public static int halfSearch_2(int[] arr,int key){	//折半查找方法2
		int min=0,max=arr.length-1,mid;
		while(min<=max){
			mid=(min+max)/2;
			if(key>arr[mid]){
				min=mid+1;
			}
			else if(key<arr[mid]){
				min=mid-1;
			}
			else{
				return mid;
			}
		}
	return -1;
	}
	public static void main(String[] args){
		int[] arr={2,3,4,5,6,7,8,9};
		int index=halfSearch_2(arr,3);
		System.out.println(index);
	}
}

将一个元素插入到有序数组中并保证有序

(╯‵□′)╯︵┻━┻

© 著作权归作者所有

Almon
粉丝 2
博文 74
码字总数 51103
作品 0
江北
私信 提问
为 Java 程序员准备的 10 分钟 Perl 教程

这10分钟教程并不是Java和Perl的比较。目标是探索作为Java开发人员如何快速学习Perl。以下是一些从我的角度来看的关键笔记。 1.从基础开始 不像java,Perl不需要“main”方法作为入口点。要运...

oschina
2013/11/08
7.6K
17
Android--面试中遇到的问题总结(三)

《Android 开发工程师面试指南 LearningNotes 》,作者是陶程,由梁观全贡献部分。大家可以去知乎关注这两位用心的少年。这份指南包含了大部分Android开发的基础、进阶知识,不仅可以帮助准备...

sealin
2017/02/22
0
0
读书笔记之《Java并发编程的艺术》-并发编程容器和框架(重要)

读书笔记部分内容来源书出版书,版权归本书作者,如有错误,请指正。 欢迎star、fork,读书笔记系列会同步更新 git https://github.com/xuminwlt/j360-jdk module j360-jdk-thread/me.j360....

Hi徐敏
2015/11/11
0
1
Java基础之数组队列及Java堆外内存学习笔记[图]

Java基础之数组队列及Java堆外内存学习笔记[图] 1.数组 1.1 数组基本概念: 数组是一个容器,可以存储同一数据类型的N个数据;数组是一个数据结构,是数据结构中访问速度最快的; 数组是直接...

原创小博客
2018/08/25
0
0
一文掌握关于Java数据结构所有知识点(欢迎一起完善)

在我们学习Java的时候,很多人会面临我不知道继续学什么或者面试会问什么的尴尬情况(我本人之前就很迷茫)。所以,我决定通过这个开源平台来帮助一些有需要的人,通过下面的内容,你会掌握系...

snailclimb
2018/05/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JWT学习总结

官方 https://jwt.io 英文原版 https://www.ietf.org/rfc/rfc7519.txt 或 https://tools.ietf.org/html/rfc7519 中文翻译 https://www.jianshu.com/p/10f5161dd9df 1. 概述 JSON Web Token(......

冷基
今天
3
0
AOP的学习(1)

AOP 理解AOP编程思想(面向方法、面向切面) spring AOP的概念 方面 -- 功能 目标 -- 原有方法 通知 -- 对原有方法增强的方法 连接点 -- 可以用来连接通知的地方(方法) 切入点 -- 将用来插入...

太猪-YJ
今天
4
0
一张图看懂亮度、明度、光度、光亮度、明亮度

亮度、明度、光亮度,Luminance和Brightness、lightness其实都是一个意思,只是起名字太难了。 提出一个颜色模型后,由于明度的取值与别人的不同,为了表示区别所以就另想一个词而已。 因此在...

linsk1998
昨天
8
0
Python应用:python链表示例

前言 python链表应用源码示例,需要用到python os模块方法、函数和类的应用。 首先,先简单的来了解下什么是链表?链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是...

python小白1
昨天
4
0
Source Insight加载源码

Source Insight是一个图形化的源代码查看工具(当然也可以作为编译工具)。如果一个项目的源代码较多,此工具可以很方便地查找到源代码自建的依赖关系。 1.创建工程 下图为Snort源代码的文件...

天王盖地虎626
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部