冒泡排序、选择排序、插入排序
public class SortDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a={1,5,6,9,20,56,32,45};
bubbleSort(a);
System.out.println();
int[] b={15,4,89,63,25};
selectSrot(b);
System.out.println();
int[] c={46,41,748,15,4,5};
insertSort(c);
}
//冒泡排序
public static void bubbleSort(int[] a){
for (int i = 0; i < a.length-1; i++) {
for (int j = i+1; j < a.length; j++) {
if(a[i]>a[j]){
int b=a[i];
a[i]=a[j];
a[j]=b;
}
}
}
for (int i : a) {
System.out.print(i+" ");
}
}
//选择排序
public static void selectSrot(int[] a){
int minIndex = 0;
for (int i = 0; i < a.length; i++) {
minIndex=i;
for (int j = i+1; j < a.length; j++) {
if(a[j]<a[minIndex]){
minIndex=j;
}
}
if(minIndex!=i){
int b=a[i];
a[i]=a[minIndex];
a[minIndex]=b;
}
}
for (int i : a) {
System.out.print(i+" ");
}
}
//插入排序
public static void insertSort(int[] a){
int i; //j前的位置
int j; //当前值的位置
int key; //要插入的值
//从数组的第二个位置开始遍历值
for(j=1;j<a.length;j++){
key=a[j];
i=j-1;
//a[i]比当前值大时,a[i]后移一位,空出i的位置,好让下一次循环的值后移
while(i>=0 && a[i]>key){
a[i+1]=a[i]; //将a[i]值后移
i--; //i前移
}//跳出循环(找到要插入的中间位置或已遍历到0下标)
a[i+1]=key; //将当前值插入
}
for (int k : a) {
System.out.print(k+" ");
}
}
}