JAVA冒泡排序和折半查找算法

题目要求:

1.从键盘中输入十个数字,用数组保存。

2.按键盘输入顺序输出。

3.按输入的反向顺序输出。

4.按冒泡算法从小到大按顺序输出。

5.计算最大值、最小值、平均值。

6.使用折半查找随机输入一个值,当这个值在数组中时,输出该值的下标。


代码如下:

import java.util.Scanner;

public class Demo {

	public static void main(String[] args) {

		int[] num = new int[10];
		int i, j, temp, max, min, avg, sum = 0;// temp:临时辅助变量,i,j循环变量,max:最大值,min:最小值
												// avg:平均值 sum:求和
		int startpos = 0, endpos = num.length;// startpos:开始游标,endpos:结束游标
		int mid;// 中间游标
		boolean find = false;

		Scanner sc = new Scanner(System.in);// new一个输入流

		// 循环键盘接受10个数据
		System.out.println("请键盘输入十个整数");
		for (i = 0; i < 10; i++) {
			num[i] = sc.nextInt();
		}

		// 按输入顺序输出
		System.out.println("按输入顺序输出结果如下:");
		for (i = 0; i < 10; i++) {
			sum = sum + num[i];
			System.out.print(num[i] + " ");
		}
		System.out.println("");

		// 按照输入的反向顺序输出
		System.out.println("按照输入的反向顺序输出结果如下:");
		for (i = 9; i >= 0; i--) {
			System.out.print(num[i] + " ");
		}
		System.out.println("");

		// 从小到大冒泡算法排序
		System.out.println("根据冒泡排序输出结果如下:");
		for (i = 0; i < 10; i++)
			for (j = i + 1; j < 10; j++) {
				{
					if (num[i] > num[j]) {
						temp = num[i];
						num[i] = num[j];
						num[j] = temp;
					}
				}
			}
		// 从小到大冒泡排序后输出:
		for (i = 0; i < 9; i++) {
			System.out.print(num[i] + "<");
		}
		System.out.println(num[9]);

		// 最大值输出
		System.out.println("输入的十个数据中最大值为:" + num[0]);
		// 最小值输出
		System.out.println("输入的十个数据中最大值为:" + num[9]);
		// 平均值输出
		System.out.println("输入的十个数据中平均值为:" + sum / 10);

		// 请键盘输入查找的数字
		System.out.print("请键盘输入要查找的数字:");
		int findnum = sc.nextInt();// 键盘接受一个整型数据

		// 折半查找
		i=0;
		if(findnum >= num[0] && findnum <= num[9]){
			while (startpos <= endpos) {
				mid = (startpos + endpos) / 2;
				if (findnum == num[mid]) {
					System.out.println("所查找数字在该数组中的下标为:" + mid);
					find = true;
					break;

				} else if (findnum > num[mid]) {
					startpos = mid;
				} else if (findnum < num[mid]) {
					endpos = mid - 1;
				}
				i++;
				if(i>=10)break;
			}
		}
		if(!find)
			System.out.println("对不起,没有找到该数字!");

	}
}

程序截图:

JAVA冒泡排序和折半查找算法_第1张图片


你可能感兴趣的:(JAVA冒泡排序和折半查找算法)