Bubble Sort(冒泡排序)
冒泡排序算法的运作如下:(从后往前)
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
- 对每一个相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最户的元素应该会是最大的数。
- 针对所有的元素重复以上的步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
JAVA
public class BubbleSort{
public void sort(int[] a){
int temp = 0;
for(int i = a.length-1;i>0;--i){
for(int j = 0; j<i;++j){
if(a[j+1]<a[j]){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
}
**Selection sort(选择排序)
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在以排好虚的数列的后面,直到全部待排序元素排完。
JAVA
public static void SelectSort(int[] a){
int minIndex = 0;
int temp = 0;
if((a==null)||(a.length==0))*长度为0的数组int[] arr = new int [0],也称之为空数组,虽然arr长度为0,但是依然是一个对象。null数组,int[] arr = null;arr是一个数组类型的空引用。*
return;
for(int i = 0;i<a.length-1;i++){
minIndex = i;//无序区的最小数据数组下标
for(int = j = i+1;j<a.length;j++){
//在无序区中找到最小数据并保存其数组下标
if(a[j]<a[minIndex]){
minIndex = j;
}
}
if(minIndex != i){
//如果不是无序区的最小值位置不是默认的第一个数据,则交换之
temp = a [i];
a[i] = a[minIndex];
a[minIndex] = temp;
}
}
}