import java.util.Arrays; public class TestBinarySearch { public static void main(String[] args) { int[] arr = { 30,20,50,10,80,9,7,12,100,40,8}; Arrays.sort(arr);//排序 System.out.println(Arrays.toString(arr)); System.out.println(myBinarySearch(arr,10)…
import java.util.Arrays; public class TestBubbleSort2 { public static void main(String[] args) { int[] values = { 3, 1, 6, 2, 9, 0, 7, 4, 5, 8 }; int temp = 0; for(int i=0;i<values.length-1;i++) { boolean flag = true; for(int j=0;j<values.length-1-i…
/** * 冒泡排序的基础算法 */ import java.util.Arrays; public class TestBubbleSort1 { public static void main(String[] args) { int[] values = { 3, 1, 6, 2, 9, 0, 7, 4, 5, 8 }; int temp = 0; /* 2.调用内循环length-1次,数字逐渐实现从左到右依次向后排, * 每执行n次内循环就出现n个排好的数值,故内循环可少执行i次, 所…
写一个方法void isTriangle(int a,int b,int c),判断三个参数是否能构成一个三角形, 如果不能则抛出异常IllegalArgumentException,显示异常信息 “a,b,c不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数, 调用此方法,并捕获异常. import java.util.Scanner; public class TestTriangle { public static void main(String[]…
第七章 一维数组 7.2 数组的基础知识 1.一旦数组被创建,它的大小是固定的.使用一个数组引用变量,通过下标来访问数组中的元素. 2.数组是用来存储数据的集合,但是,通常我们会发现把数组看作一个存储具有相同类型的变量集合会更有用. 7.2.1 声明数组变量 1.为了在程序中使用数组,必须声明一个引用数组的变量,并指明数组的元素类型 语法:elementType[] arrayRefVar;(数据类型[] 数组引用变量) 2.elementType可以是任意数据类型,但是数组中所有的元素都必须具…
二分法查找原理: 1.只要低位下标不大于高位下标,就进行二分查找(步骤1-3) 2.先在有序的数组中对半查找中间的坐标,如果中标和要查找的下标相等时,找到目标数,那二分结束. 3.如果步骤2没有找到,那就会出现先2种情况:a.中标大于find值;b.中标小于find值: 3.1.如果中标大于find值,说明find值在中标的左边,那么高位就是此时的中标,然后继续二分 3.2.如果中标小于find值,说明find值在中标的右边,那么低位就是此时的中标,然后继续二分 4.如果低位下标大于高位下标:那…
算法:当数据量很大适宜采用该方法.采用二分法查找时,数据需是有序不重复的. 基本思想:假设数据是按升序排序的,对于给定值 x,从序列的中间位置开始比较,如果当前位置值等于 x,则查找成功:若 x 小于当前位置值,则在数列的前半段中查找:若 x 大于当前位置值则在数列的后半段中继续查找,直到找到为止. 假设有一个数组 { 1,2,3,4,5,6,7,8,9,10 },现要求采用二分法找出指定的数值并将其在数组的索引返回,如果没有找到则返回 -1.代码如下: public class Dichoto…
二分法查找 /** * 二分法查找 找不到返回-1 * @author yangzi * */ public class TwoFind { public static int twoFind(int ia, int[] arr, int left, int right) { if (left > right) { return -1; } if (arr[(left + right) / 2] == ia) { return (left + right) / 2; } if (arr[(lef…
编写一个计算N个学生分数平均分的程序.程序应该提示用户输入N的值,如何必须输入所有N个学生分数.如果用户输入的分数是一个负数,则应该抛出一个异常并捕获,提示“分数必须是正数或者0”.并提示用户再次输入该分数. import java.util.Scanner; public class TestInputScore { public static void main(String[] args) { @SuppressWarnings("resource") Scanner input…
Java没有提供任何机制来安全地终止线程(虽然Thread.stop和suspend方法提供了这样的机制,但由于存在缺陷,因此应该避免使用 中断:一种协作机制,能够使一个线程终止另一个线程的当前工作 立即停止会使共享的数据结构处于不一致的状态,需要停止时,发出中断请求,被要求中断的线程处理完他当前的任务后会自己判断是否停下来 一.任务取消 若外部代码能在某个操作正常完成之前将其置入“完成”状态,则还操作是可取消的.(用户请求取消.有时间限制的操作<并发查找结果,一个线程找到后可取消其他线程>.…