今天面试,让写一个冒泡排序和一个选择排序,居然没弄明白这两种算法的区别,特此发表一篇文章,以备前车之鉴!希望和我有过同样经验的,吸取经验教训。以下是对上面所说两种算法的阐述!
// 选择排序(选择排序是对两个相邻数进行比较)
public class ChoicesSort
{
public static void main(String[] args)
{
int[] a = {6,5,2,9,1};
sortASC(a);
for(int i = 0;i < a.length;i++)
{
System.out.println("a"+i+"="+a[i]);
}
}
public static void sortASC(int[] a)
{
int temp;
// 进行升序排序
for(int i=0;i<a.length;i++)
{
for(int j=i+1;j<a.length;j++)
{
if(a[i] > a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
}
// 冒泡排序算法(每次内部的循环都和外部循环的数进行比较)
public class BubbleSort
{
public static void main(String[] arg)
{
int[] a = {6,5,4,9,1};
sortASC(a);
for(int i=0;i<a.length;i++)
{
System.out.println("a"+i+"="+a[i]);
}
}
// 选择排序算法——进行升序排列
public static void sortASC(int[] a)
{
int temp;
for(int i=0;i<a.length;i++)
{
for(int j=0;j<a.length-i-1;j++)
if(a[j]>a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}