您的位置:首页 > 职场人生

JAVA面试题之冒泡排序,插入排序及选择排序

2017-06-24 21:47 316 查看
经过几家的面试,发现每次笔试都有一道排序的题目,所以梳理一下,防止在面试中卡壳。

1、使用JAVA实现一个冒泡排序:

源码:

public static void main(String[] args) {
int [] a = {4,1,18,6,5,9};
int [] c = bubbleSort(a);
System.out.print("冒泡排序结果:   ");
for (int i = 0; i < c.length; i++) {
System.out.print(c[i]+"   ");
}
}
public static int [] bubbleSort(int [] a){
int temp = 0;
for(int i=1;i<a.length;i++){
for(int j=0;j<a.length-i;j++){
//一次比较两个元素,如果前者大于后者,就将他们进行交换。
if (a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
return a;
}


代码分析:见《JAVA之冒泡排序》

2、使用JAVA实现一个选择排序:

源码:

public static void main(String[] args) {
int [] a = {7,4,9,13,1,6};
int [] c = chooseSort(a);
for (int i = 0; i < c.length; i++) {
System.out.print(c[i]+ "   ");
}
}
/**
* 选择排序:
* 从数列中第一位开始,遍历之后的所有,选择出最小的一个放到第一位。
* 接下来从第二位开始,找到数组中第二个小数,放到第二个位置,以此类推。
* @param a
* @return
*/
public static int [] chooseSort(int [] a){
//定义最小数据的下表,默认是第一个
int minIndex = 0;
for (int i = 0; i < a.length-1; i++) {
minIndex = i;
for (int j = i+1; j < a.length; j++) {
if(a[minIndex]>a[j]){
minIndex = j;
}
}
//找到最小值的角标,进行交换
if (minIndex != i){
int temp = a[i];
a[i] = a[minIndex];
a[minIndex] = temp;
}
}
return  a;
}


代码分析:见《JAVA之选择排序》

3、使用JAVA实现一个插入排序:

源码:

public static void main(String[] args) {
int [] a = {7,4,9,13,1,6};
int [] c = insertSort(a);
for (int i = 0; i < c.length; i++) {
System.out.print(c[i]+"   ");
}
}
private static int[] insertSort(int[] a) {
int inserNode;
int j;
for (int i = 1; i < a.length; i++) {
inserNode = a[i];
j = i-1;
while (j>=0 && a[j]>inserNode){
a[j+1] = a[j];
j--;
}
a[j+1] = inserNode;
}
return a;
}


代码分析:见《JAVA之插入排序》

总结:巩固基础,勇攀高峰!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐