• Java学习笔记day07_琐碎知识_水仙花数_ASCII码_冒泡排序_简单选择排序_折半查找


    琐碎知识: 水仙花数, ASCII码, 冒泡排序, 简单选择排序, 折半查找

    1.水仙花数

      每位数的平方的和等于本身.

      如100到999之间的水仙花数满足: 个位的平方+十位的平方+百位的平方 = 本身.

      

    public class Test02{
        public static void main(String[] args){
            int g = 0;//存储个位
            int s = 0;//存储十位
            int b = 0;//存储百位
            
            for(int i=100; i<999; i++)
            {
                g = i%10;//获取各位. 如365%10=5
                
                //s = (i%100 - g) / 10;
                s = i/10%10;//获取十位. 如365/10=36,36%10=6
                
                //b = (i - s*10 - g) / 100;
                b = i/100;//获取百位. 如365/100=3
                
                if(g*g*g+s*s*s+b*b*b == i)
                    System.out.println(i);
            }
        }
    }

    2.ASCII码

      数字0-9对应  -  48-57

      字母A-Z对应    -  65-90  

      字母a-z对应  -  97-122

      同一个字母的大小写相差32.

    3.冒泡排序

      从后往前(或从前往后)两两比较相邻元素, 若不满足排序规则就交换位置, 直到序列比较完, 至此一趟比较完毕.

    //冒泡排序
    public class BubbleSort{
        public static void main(String[] args){
            int[] arr = {9,6,5,4,8,7,1,2,3};
            bubbleSort(arr);
        }
        
        
        
        /*
            冒泡排序
        */
        public static void bubbleSort(int[] arr){
            for(int i=0; i<arr.length-1; i++)
            //外层循环控制每轮比较的次数
                for(int j=arr.length-1; j>i; j--)
                {//内层循环从后往前相邻两个数进行比较,较小的放在前面的位置
                    if(arr[j]<arr[j-1]){
                        int temp = arr[j-1];
                        arr[j-1] = arr[j];
                        arr[j] = temp;
                    }
                }
                
            for(int i=0; i<arr.length; i++)
                System.out.print(arr[i]+" ");
        }
    }

    4.简单选择排序

      第 i 趟循环在后面的n-i 个待排序的元素中选出最小(或最大)的关键字, 将其与序列的第 i 个元素交换位置.

    /*
        简单选择排序
    */
    
    public class SelectSort{
        public static void main(String[] args){
            int[] arr = {7,4,5,8,9,6,1,2,3};
            SelectSort(arr);
            
        }
        
        /*
            定义方法,实现数组的选择排序
            实现步骤:
                1.嵌套循环实现排序
                  外循环控制一共比较了多少次
                  内循环可控制每次比较了多少个元素
                2.判断元素的大小值
                  小值,存储到小的索引
        */
        public static void SelectSort(int[] arr){
            for(int i=0; i<arr.length-1; i++)
            {
                for(int j=i+1; j<arr.length; j++)
                {
                    //数组的元素进行判断
                    if(arr[i]>arr[j]){
                        int temp = arr[i];
                        arr[i] = arr[j];
                        arr[j] = temp;
                    }
                }
            }
            
            for(int i=0; i<arr.length; i++)
                System.out.print(arr[i]+" ");
        }
    }

    5.折半查找

      又称二分查找.

      将定值key与序列中间位置元素比较, 若查找成功,返回该元素的位置. 若不等, 则所需查找的元素只能在中间元素以外的前半部分或后半部分中. 根据大小关系确定在哪部分中继续进行折半查找. 直到查找成功, 或查找失败.

    /*
        折半查找(二分查找)
    */
    import java.util.*;
    public class BinarySearch{
        public static void main(String[] args){
            int[] arr = {5,6,7,8,17,18,25,27,33,35,37,57};//6,17,27,35,57
            Scanner sc = new Scanner(System.in);
            int s = sc.nextInt();
            System.out.println(binarySearch(arr, s));
        }
        
        
        //折半查找方法
        //参数:有序表,要查找的值
        //返回值:若找到,要查找的值在有序表的位置(索引)
        //若未查找到,返回-1;
        public static int binarySearch(int[] arr, int key){
            int low = 0, high = arr.length-1, mid;
            while(low<=high)    //小于等于!!!
            {
                mid = (low+high)/2;
                if(arr[mid]==key)
                    return mid;
                else if(arr[mid]<key)
                    low = mid+1;
                else
                    high = mid-1;
            }
            return -1;
        }
    }
  • 相关阅读:
    Swift相比OC语言有哪些优点
    Swift实战技巧
    Swift 并行编程现状和展望
    Swift设置只读(readOnly)属性
    Swift零基础教程2019最新版(一)搭建开发环境
    中文版 Apple 官方 Swift 教程《The Swift Programming Language》
    一个中文的苹果开发站
    simulink创建简单模型
    Simulink 产品说明
    matlab中的实时音频
  • 原文地址:https://www.cnblogs.com/nemowang1996/p/8409566.html
Copyright © 2020-2023  润新知