zoukankan      html  css  js  c++  java
  • 进制转换、冒泡排序、选择排序


    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);
    }
    }
    
    该程序有选择排序和冒泡排序,有升序和降序的功能,还用到了继承的特性。


  • 相关阅读:
    [BZOJ-1007&洛谷P3194][HNOI2008]水平可见直线--【半平面交(单调栈)】
    [BZOJ-1006&洛谷P3196][HNOI2008]神奇的国度--【图的染色-最大势MCS算法】
    [BZOJ-1005&洛谷P2624][HNOI2008]明明的烦恼-【Purfer序列】py+java
    [BZOJ1211 & 洛谷P2290] [HNOI2004]树的计数-【Purfer序列】py+Java
    【BZOJ-1004&洛谷P1446】[HNOI2008]Cards-置换群(burnside引理|DP)
    POJ-2409 Let it Bead 【置换群-Polya定理】
    Dijkstra--POJ 2502 Subway(求出所有路径再求最短路径)
    二分--LIGHTOJ 1088查找区间(水题)
    二分--1043
    二分---LIGHTOJ 1062
  • 原文地址:https://www.cnblogs.com/lisisong/p/5122628.html
Copyright © 2011-2022 走看看