• 0513作业


     1 package com.hanqi.z1p1;
     2 
     3 import java.util.Random;
     4 import java.util.Scanner;
     5 
     6 public class Homework0513 {
     7 
     8     public static void main(String[] args) {
     9         // TODO 自动生成的方法存根
    10         Random r1 = new Random();
    11         int[] array = new int[10];
    12         for (int i = 0; i < array.length; i++) {
    13             
    14             array[i] = r1.nextInt(100);   //0-99的随机数
    15         }
    16         // 遍历输出数组
    17         System.out.println("数组的原始顺序");
    18         for (int t : array) {
    19             System.out.print(t + " ");
    20         }
    21         
    22         //2.冒泡排序
    23         System.out.println("排序后的顺序");
    24         //总的循环次数
    25         for (int k = 0; k < array.length - 1; k++) {
    26             //优化:每次冒泡时的循环次数,比上一次少1
    27             for (int i = 0; i < array.length - 1-k; i++) {
    28                 if (array[i] > array[i + 1]) {
    29                     // 从小到大排列
    30                     int zhong = array[i];
    31                     array[i] = array[i + 1];
    32                     array[i + 1] = zhong;
    33 
    34                 }
    35             }
    36             System.out.println("数组第" + (k + 1) + "次排序后的顺序");
    37             for (int t : array) {
    38                 System.out.print(t + " ");
    39             }
    40         }
    41         //3.二分查找
    42         
    43         //1)计算出数组的中间位置:(开始位置索引+结束位置索引)/2
    44         
    45         //2)取出中间未知的值和要查找的数字比较,根据比较结果决定下一步查找的部分
    46         //3)计算出下一部分数组的中间位置
    47         
    48         //要查找的值
    49         Scanner sc=  new   Scanner(System.in);
    50         System.out.println("请输入要查找的数");
    51         int a=sc.nextInt();
    52         
    53         
    54         int w=-1;//-1代表没找到
    55         //开始索引
    56         int  start=0;
    57         //结束索引
    58         int  end=array.length-1;
    59         //循环条件
    60         while(start<=end)
    61         {
    62         int m=(start+end)/2;
    63         if(a==array[m])
    64         {
    65             w=m;//找到了
    66             break;
    67         }
    68         else if(a>array[m])
    69         {
    70             start=m+1;
    71         }
    72         else
    73         {
    74             end=m-1;
    75         }
    76         }
    77         System.out.println("找到的位置是"+w);
    78 
    79     }
    80 
    81 }

    运行结果:

  • 相关阅读:
    FrameLayout和handle实现霓虹灯效果
    Table中collapseColumns,stretchColumns
    自定义View,随着手指运动的小球
    用代码创建视图
    Android scrollbar的设置
    Android安装和设置的方法
    将win7电脑无线网变身WiFi热点,让手机、笔记本共享上网
    同一个ImageView根据xml文件来显示不同的图片--level-list
    android获取屏幕长宽的方法
    Android实现图片裁剪
  • 原文地址:https://www.cnblogs.com/miss123/p/5489489.html
Copyright © 2020-2023  润新知