小练习

1,n=2,m=3,请将n和m的值互换。
①,int t; t=n; n=m; m=t;(最常用的方式)
②,n=n+m; m=n-m;n=n-m;(当n和m的值很大时,n+m的值可能超出int的范围,从而使结果失去精度)
③,n=nm;m=nm;(相当于m=(nm)m);
n=nm;(相当于n=n(n^m));(其利用了一个数同时异或另一个数两次,结果仍是它自身的特性)
2,选择排序(升序)

public static void selectSort(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;
                           }
                  }
        }
}

3,冒泡排序(降序)

public static void bubbleSort(int[ ] arr)
{
      for(int  x=0;x<arr.length-1;x++)
         {
               for(int y=0;y<arr.length-x-1;x++)
                    {
                        if(arr[y]<arr[y+1])
                            {
                               int temp=arr[y];
                               arr[y]=arr[y+1];
                               arr[y+1]=temp;
                            }
                  }
        }
}

4,插入排序

public static int[] charu(int[] a){
    for(int i=1;i<a.length;i++){
        for(int j=i-1;j>=0;j--){
            int min=a[j+1];
            if(min<a[j]){
                a[j+1]=a[j];
                a[j]=min;
            }
        }
    }
    return a;
}

5,归并排序

public class t3 {
    
    public static void main(String[] args) {
        int arr[] = {4,3,2,9,7,8,6,5,4};
        split(arr,0,arr.length-1);
    }
    public static void split(int[] arr,int left,int right){
        int mid = (right+left)/2;
        if(left<right){
            split(arr,left,mid);
            split(arr,mid+1,right);
            merger(arr,left,mid,right);
        }
    }
    public static void merger(int[] arr,int left,int mid, int right){
        int low1=left;
        int low2=mid+1;
        int temp[] = new int[right-left+1];
        int index=0;
        while(low1<=mid&&low2<=right){
            if(arr[low1]<arr[low2]){
                temp[index++]=arr[low1++];
            }else{
                temp[index++]=arr[low2++];
            }
        }
        while(low1<=mid){
            temp[index++]=arr[low1++];
        }
        while(low2<=right){
            temp[index++]=arr[low2++];
        }
        for (int i = 0; i < index; i++) {
            arr[left++]=temp[i];
        }
        
        System.out.println(Arrays.toString(arr));

《java测试题合集》

1、使用除余法,计算 128 和 -257 的内存二进制值。写出计算过程。

1、128 的二进制计算过程

2、-257 的二进制计算过程 

2、使用三种以上的循环方式实现99乘法表。写出思路与实现代码。

1、for 循环实现99乘法表

2、while 循环实现99乘法表

3、do whole 循环实现99乘法表

3、写一个方法,使用 Scanner 传入一个字母,如果是大写,输出小写,反之输出大写。写出思路与实现代码。

1、思路
2、实现代码

4、写一个方法,传入一个 Date 日期类型的参数,输出今天是星期几。写出思路与实现代码。

1、思路
2、实现代码

5、数组排序-冒泡排序。写出思路与实现代码。

1、思路
2、实现代码

6、数组排序-选择排序。写出思路与实现代码。

1、思路
2、实现代码

7、数组排序-插入排序。写出思路与实现代码。

1、思路
2、实现代码

8、数组排序-归并排序。写出思路与实现代码。

1、思路
2、实现代码

9、写一个方法,计算任意两个数组的交集。写出思路与实现代码。

1、思路
2、实现代码

10、写一个方法,计算任意两个数组的并集。写出思路与实现代码。

1、思路
2、实现代码

11、写一个计算器类,要求能够计算两个任意类型(整型、浮点型)参数的和。写出思路与实现代码。

1、思路
2、实现代码

12、定义一个点类(Point)和一个线类(Line),计算线的长度。写出思路与实现代码。

1、思路
2、实现代码

13、定义一个接口,提供开和关两个功能。定义一个手机类,使用该接口。写出思路与实现代码。

1、思路
2、实现代码

14、写一个方法,打印出指定目录里面的目录和文件的结构。写出思路与实现代码。

// 可能使用到的 File 实例对象方法 isDirectory,getName,getPath。
1、思路
2、实现代码

15、定义一个 Login 类,Scanner 输入用户名和密码。如果用户不存在,抛出用户还未注册的异常信息(使用自定义异常)。如果用户存在且密码正确,提示登录成功,否则提示登录失败。写出思路与实现代码。

1、思路
2、实现代码
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,455评论 25 708
  • 各位小伙伴们,以下的内容来自于我在freecodecamp上做的练习,这是一个很好的学习平台,在此分享给大家,下面...
    DonyZ阅读 475评论 0 1
  • 不想去见某人,我们总是以忙作为借口;若是想见某人,则一定是会有时间的。不想去做某事,我们也总是以忙为借口;若是必定...
    林家二郎阅读 1,250评论 2 5
  • 预示着一场大雨的到来 可以说很无力了
    黑桃十七阅读 95评论 0 0
  • 一次次毫无原则的退让 一次次放纵自己的轻狂 自作自受的彷徨 铸就了沉沦的迷茫 跌倒又怎样 没有梦想也要去远方 你啊...
    逍四叶阅读 170评论 1 2