在面试的笔试中,这个题目作为普通的编程题出现,考察的当然不仅仅是程序设计,还有考虑在实战中遇到类似问题时的应对思维。这里将几个写法主意分析。
写法一
public void sort(int x, int y, int z) {
int[] arr = {x, y, z};
for (int i = 1; i < arr.length; i++) {
for (int j = 0; j < arr.length - i; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for (int num : arr) {
System.out.printf("%d ", num);
}
}
写法一使用冒泡排序,将无序的三个数排序后再输出。一般在面试中使用基础算法来解答题目,而且能够把基本算法写对,这个面试中是可以加分。
写法二
public void sort(int x, int y, int z) {
if (x > y) {
int temp = x;
x = y;
y = temp;
}
if (x > z) {
int temp = x;
x = z;
z = temp;
}
if (y > z) {
int temp = y;
y = z;
z = temp;
}
System.out.printf("%d %d %d", x, y, z);
}
写法二采用一般的程序设计,应该说是一个很入门的写法。如果在面试过程中想不到好办法,那么也可以写出来,但需要注意的是,千万不要写错,毕竟简单的入门题目还会写错,一旦写错将会被减分。
写法三
public static String outSortNum(int a, int b, int c) {
int[] num = new int[]{a, b, c};
Arrays.sort(num);
return Arrays.toString(num);
}
写法三很干脆,二话不说直接调用jdk的排序函数。这种写法在项目中最常见,当然可以写出来。不过一旦写出来,可能会被面试官问到sort函数中使用了什么排序算法等扩展问题。
综合以上写法,笔者推荐第一种写法,第二种次之,第三种的话尽量避免。
1
1
555
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
555
1
1
1
555
1
1
1
1
1
555
1
1
1
555
555
1
1
555
555