Java几种算法简例

来源:互联网 发布:王者荣耀安卓数据迁移 编辑:程序博客网 时间:2024/05/01 12:53

1,选择排序:不稳定,时间复杂度 O(n^2)

private static void xuanze(int[] a) {        int temp = 0;        for(int i = 0;i<a.length-1;i++){//循环  数组长度-1  次            for(int j =i+1;j<a.length;j++){// j=i+1                if(a[j]<a[i]){                    temp=a[j];                    a[j]=a[i];                    a[i]=temp;                }            }        }    }

2,冒泡排序:稳定,时间复杂度 O(n^2)

private static void maopao(int[] a) {        int temp = 0;        for(int i = 0;i<a.length-1;i++){//循环  数组长度-1  次            for(int j =0;j<a.length-i-1;j++){// j=0,每次选出最大的元素                if(a[j+1]<a[j]){                    temp=a[j+1];                    a[j+1]=a[j];                    a[j]=temp;                }            }        }    }

3,插入排序:稳定,时间复杂度 O(n^2)

private static void charu(int[] a) {//插入排序        for(int i =1;i<a.length-1;i++){//循环  数组长度-2 次            int index = i;            int temp = a[index+1];            while(index>=0&&temp<a[index]){                a[index+1]=a[index];                a[index] = temp;                index--;            }        }    }
1 0
原创粉丝点击