面试题_抽象工厂,字符反串,冒泡与选择排序
2016-03-22 17:38
471 查看
面试题_抽象工厂,字符反串,冒泡与选择排序
1:写一个抽象工厂模式 java实例 ?
2,:String str="ABCDF" 把这个字符串怎么排序成“FDCBA”?
3:写一个冒泡排序把这个数组排一下“1,9,3,4,7,2,8,5,”?
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;
}
来自为知笔记(Wiz)
1:写一个抽象工厂模式 java实例 ?
2,:String str="ABCDF" 把这个字符串怎么排序成“FDCBA”?
3:写一个冒泡排序把这个数组排一下“1,9,3,4,7,2,8,5,”?
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;
}
来自为知笔记(Wiz)
相关文章推荐
- 133个Java面试问题列表
- 程序员跳槽的最佳时机选择
- 程序员的那些门槛!
- 排序01无序数组
- 推荐!国外程序员整理的Java资源大全
- 给未来程序员的15个顶级职业建议
- 搜狐面试题:有12个球,外形都一样,其中有一个质量和其他的不一样,给你一架天平,请问最少称几次可以把那个不同的球找出来。
- 最适合程序员转行的10大职业
- 给新人的iOS面试资料(2016年3月6日更新)
- [转载]一天只工作 3 小时的程序员,已坚持两年
- 记CVTE2016年春招&暑期实习生招聘应聘经历
- Java研发工程师面试题
- cvte——android面试必懂
- 3-14CVTE—android工程师面试前准备
- 彪悍的职业不惧阿尔法狗
- IntelliJ下使用Code/Live Template加快编码速度:程序员的工作不是写程序,而是写程序解决问题
- 40个Java集合面试问题和答案
- Java程序员不该有的6种陋习
- Google Careers 程序员必修课
- 面试感悟:3年工作经验程序员应有的技能