面试题_抽象工厂,字符反串,冒泡与选择排序

面试题_抽象工厂,字符反串,冒泡与选择排序

1:写一个抽象工厂模式 java实例 ?
2,String str="ABCDF" 把这个字符串怎么排序成“FDCBA”

3:写一个冒泡排序把这个数组排一下“1,9,3,4,7,2,85,”

 

1

public interface Work{

void doWork();

}

 CreateProduct:

public class Studentwork implements Work{

public void doWork() {
        System.out.println("学生做作业!");
    }

}

public class TeacherWork implements Work {

    public void doWork() {
        System.out.println("老师审批作业!");
    }

}

 

生产者
public interface IWorkFactory {

    Work getWork();
}

 

Create factory

public class StudentWorkFactory implements IWorkFactory {

    public Work getWork() {
        return new StudentWork();
    }

}
public class TeacherWorkFactory implements IWorkFactory {

    public Work getWork() {
        return new TeacherWork();
    }

}

 

Test

public class Test {

    public static void main(String[] args) {
        IWorkFactory studentWorkFactory = new StudentWorkFactory();
        studentWorkFactory.getWork().doWork();
        
        IWorkFactory teacherWorkFactory = new TeacherWorkFactory();
        teacherWorkFactory.getWork().doWork();
    }

}

 

2)字符串反转如下:

public String getReverseStr(String str)

{

    String reverseStr = "";

    if (null != str && !str.equals(""))

    {

        for (int i = 1 ; i < =str.length(); i++){

              reverseStr += str.charAt(str.length() - i);

              // 依次按与原字符串相反的顺序拼装字符串,内部会自动进行类型转换

              //str.length() - i刚好是str的下标,因为i是从1开始

        }

   }

    return reverseStr;

}

 

3)冒泡排序,从小到大
public int[] sortArr(int[] targetArr){

           //小到大的排序
            int temp = 0;
            for(int i = 0;i<targetArr.length;i++){
                for(int j = i;j<targetArr.length;j++){
                    if(targetArr[i]>targetArr[j]){
                        temp = targetArr[i];
                        targetArr[i] = targetArr[j];
                        targetArr[j] = temp;
                       }
                 }
            }

          return targetArr;

}

 

3)选择排序,从小到大

private static int[] selection_sort(int[] unsorted)

    {

        for (int i = 0; i < unsorted.length; i++)

        {

            int min = unsorted[i], min_index = i;

            for (int j = i; j < unsorted.length; j++)

            {

                if (unsorted[j] < min)

                {

                    min = unsorted[j];

                    min_index = j;

                }

            }

            if (min_index != i)

            {

                int temp = unsorted[i];

                unsorted[i] = unsorted[min_index];

                unsorted[min_index] = temp;

            }

        }

        return unsorted;

    }

 





原文地址:https://www.cnblogs.com/ut2016-progam/p/5307753.html