java数据结构和算法 第3章 简单排序

来源:互联网 发布:linux命令 退出 编辑:程序博客网 时间:2024/06/08 19:50

冒泡排序、选择排序、插入排序

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+" ");        }     }}
0 0
原创粉丝点击