• 进制转换、冒泡排序、选择排序



    class Tool
    {
    public static void trans(int num,int base,int offset) //num是需要转换的数,base是取一位数需要与的二进制位数,offset是向右移的位数
    {
    
    if(num==0)                         //如果需要转换的数为零,直接返回
    {
    System.out.println(0);
    return ;
    }
    char[] chs = {'0','1','2','3'   //2~16进制所需要的字符
    ,'4','5','6','7'
    ,'8','9','A','B'
    ,'C','D','E','F'};
    char[] arr = new char[32];      //定义一个可以装下32个字符的数组
    
    int pos = arr.length;        //有效位长度
    
    while(num!=0)             //判断是否转换完
    {
    int temp = num & base; //取最低位
    arr[--pos] = chs[temp];//将转换的一位存在arr[]里
    num = num >>> offset;
    }
    
    for(int x=pos; x<arr.length; x++)
    {
    System.out.print(arr[x]);//打印
    }
    
    return ;
    }
    public static void toBin(int num)
    {
    trans(num,1,1);
    }
    
    /*
    十进制-->八进制
    */
    public static void toOctal(int num)
    {
    trans(num,7,3);
    }
    /*
    十进制-->十六进制
    */
    public static void toHex(int num)
    {
    trans(num,15,4);
    }
    }
    class UseTool
    {
    public static void main(String[] args)
    {
    Tool.toHex(19);           //调用
    Tool.toOctal(23);         
    Tool.Bin(23);
    }
    }
    
    该进制转换程序将实现方法全部封装在类里,而类里面成员均为静态,不用创建对象即要可调用。

    class SelecAndBubble
    {
    static void Selec(int[] arr)             //选择排序
    {
    for(int x=0;x<arr.length-1;x++)
    {
    for(int y=x+1;y<arr.length;y++)
    {
    if(arr[x]>arr[y])
    {
    int temp=arr[x];
    arr[x]=arr[y];
    arr[y]=temp;
    }
    }
    }
    Sort.Desc(arr);
    }
    static void Bubble(int[] arr)          //冒泡排序
    {
    for(int x=0;x<arr.length;x++)
    {
    for(int y=0;y<arr.length-x-1;y++)
    {
    if(arr[y]>arr[y+1])
    {
    int temp=arr[y];
    arr[y]=arr[y+1];
    arr[y+1]=temp;
    }
    }
    }
    Sort.Desc(arr);
    }
    }
    class Tool extends SelecAndBubble            //继承SelecAndBubble
    {
    static void SelecByAsc(int[] arr)             //选择排序
    {
    for(int x=0;x<arr.length-1;x++)
    {
    for(int y=x+1;y<arr.length;y++)
    {
    if(arr[x]>arr[y])
    {
    int temp=arr[x];
    arr[x]=arr[y];
    arr[y]=temp;
    }
    }
    }
    Sort.Asc(arr);
    }
    static void BubbleByAsc(int[] arr)          //冒泡排序
    {
    for(int x=0;x<arr.length;x++)
    {
    for(int y=0;y<arr.length-x-1;y++)
    {
    if(arr[y]>arr[y+1])
    {
    int temp=arr[y];
    arr[y]=arr[y+1];
    arr[y+1]=temp;
    }
    }
    }
    Sort.Asc(arr);
    }
    }
    class Sort
    {
    static void Desc(int[] arr)              //升序打印
    {
    for(int x=0;x<arr.length;x++)
    {
    System.out.println(arr[x]);
    }
    }
    static void Asc(int[] arr)            //降序打印
    {
    for(int x=arr.length-1;x>=0;x--)
    {
    System.out.println(arr[x]);
    }
    }
    }
    class UseTool
    {
    public static void main(String[] args)
    {
    int[] arr={2,37,54,4,67,3};
    Tool.SelecByAsc(arr);               
    Tool.Bubble(arr);
    }
    }
    
    该程序有选择排序和冒泡排序,有升序和降序的功能,还用到了继承的特性。


  • 相关阅读:
    tf.keras 用生成器读取图片数据+预处理
    pandas时间序列操作
    jupyter notebook 字体美化
    python响应式的数据可视化工具Dash
    python 地名地址解析(省、市、区县)
    将jupyter notebook嵌入博客园的博客
    Adaboost、GBDT、xgboost的原理基础
    数据预处理:分类变量实体嵌入做特征提取
    类不平衡问题的处理办法
    word2vec原理
  • 原文地址:https://www.cnblogs.com/lisisong/p/5122628.html
Copyright © 2020-2023  润新知