冒泡排序
原理
相邻的两个元素作比较,较大的数放在右边
例: int[] a = {3,1,7,4,2}
第一趟比较:
3和1比较 1,3,7,4,2
3和7比较 1,3,7,4,2
7和4比较 3,1,4,7,2
7和2比较 3,1,4,2,7
第二趟比较:
3和1比较 1,3,4,2,7
3和4比较 1,4,3,2,7
3和2比较 1,4,2,3,7
第三趟比较:
1和4比较 1,4,2,3,7
4和2比较 1,2,4,3,7
4和3比较 1,2,3,4,7
程序如下:
public class Demo4 {
public static void main(String[] args) {
int[] a = {3,1,7,4,2};
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
int temp = a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
}
选择排序
原理
每一趟从待排序的记录中选出关键字最小的记录,按顺序放在已排序的记录序列,直到全部排完为止。
例: int[] a={8,6,5,4,34,9};
public class Demo6 {
public static void main(String[] args) {
int[] a={8,6,5,4,34,9};
for(int i=0;i<a.length-1;i++){
int min=i;
for(int j=i+1;j<a.length;j++){
if(a[min]>a[j]){
min=j;
}
int temp=a[min];
a[min]=a[i];
a[i]=temp;
}
}
for( int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
}