冒泡排序算法的运作如下:
1.比较两个相邻的元素。如果第一个比第二个大,就交换他们两个;
2.对每一对相邻元素作同样的工作,从开始i第一对倒结尾的最后一对。在这一点,最后的元素应该会是最大的数;
3.针对所有的元素重复以上的步骤,除了最后一个;
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
public static void BubbleSort(int[] a){
if(a ==null || a.length==0){
return;
}
for(int i = 0 ; i<a.length;i++){
for(int j = 0 ;j< a.length-i -1){
if(a[j] < a[j+1]){
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
转自 :http://www.cnblogs.com/wuzhenbo/archive/2012/03/30/2423861.html
选择排序
基本原理:
第i趟简单选择排序是通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录进行交换
先临时记录其位置,只有在一次循环完了以后确定了最小的数据,才会发生交换。
//选择排序
public static void selectSort(int[] a){
if(a==null || a.length==0){//数组为空时,不进行任何操作
return;
}
for(int i = 0;i<a.length;i++){
int min = i;//将当前数字假设成为最小数字
for(int j = i+1;j<a.length;j++){
if(a[min]>a[j]){//如果有小于当前最小值的关键字
min = j;//将此关键字的下标赋值给min
}
}
if(i != min){//若min不等于i,说明找到最小值,进行位置的交换
int temp = a[min];
a[min] = a[i];
a[i] = temp;
}
}
}