标签:冒泡排序 rand 双色球 loading print 数字 插入排序 src 用户
第三章 这些算法很有用
3.3 查找
1.顺序查找
从第一个开始逐个比较,知道找出与给定关键字相同的数为止。
2.二分查找
二分查找是一种效率较高的方法。
*二分查找一定要在排序后进行
*通过不断找中点进行判断待找的数字在左边还是右边
3.4 Java工具类中算法的实现
对于前面的一些算法,Java提供了相应的API供用户使用。
方法:(1)导入java.util下的包中的类
eg. import java.util.Arrays
(2)调用相应的API
eg. Arrays.toString()
1.使用工具类打印数组
2.使用工具类排序
3.使用工具类进行二分查找
工具类binarySearch(int[] args, int key)
在进行此调用之前对数组进行排序,如果没有对数组排序则进过不确定
4.Random工具类可以生成随机数
* nextInt(int num)
*包名:java.util.Random
(答案不唯一)
3.5 综合实例
import java.util.Random;
import java.util.Arrays;
public class day06 {
public static void main(String[] args) {
//存放1~33号数字
String[] pool = {"01","02","03","04","05","06","07","08","09",
"10","11","12","13","14","15","16","17","18","19",
"20","21","22","23","24","25","26","27","28","29",
"30","31","32","33"};
//存放1~33数字是否使用过
boolean[] used = new boolean[pool.length];
//存放双色球
String[] balls = new String [6];
Random random = new Random();
int i;
int index = 0;
while(true){
//随机生成数组下标
i = random.nextInt(pool.length);
if(used[i]){
continue;
}
balls[index++] = pool[i];
used[i] = true;
if(index == balls.length){
break;
}
}
Arrays.sort(balls);
//对数组进行扩容
String[] newBalls = new String[7];
for (int m = 0; m < balls.length; m++) {
newBalls[m] = balls[m];
}
newBalls[newBalls.length - 1] = pool[random.nextInt(16)];
//打印随机生成的双色球
System.out.println("双色球:"+Arrays.toString(newBalls));
}
}
3.7 上机练习
1.对已下数据使用冒泡排序、插入排序、选择排序,进行从小到大排序[ 1,5,6,9,8,2,3]。
冒泡排序
选择排序
插入排序
2.使用工具类随机产生5位数字,并用工具对这五位数进行排序
3.自定义一个方法,当用户输入两个随机数,判断最大值。
记住数组的初始化 int a = new int[]
做综合实例的实例一直不能通过遍历初始化,纠结了好半天。。。
还有插入排序要再看一看,还是有一点不明白的感觉。
今天把第三章完成了,加油吧!
明天开始第四章的学习了!!!
标签:冒泡排序 rand 双色球 loading print 数字 插入排序 src 用户
原文地址:https://www.cnblogs.com/Gazikel/p/13284945.html