算法

来源:互联网 发布:婚礼录像制作软件 编辑:程序博客网 时间:2024/06/08 18:55

排序算法

内排序(Internal Sorting):整个排序过程中所有的记录都可以直接存放在内存中
外排序(External Sorting):内存无法容纳所有记录,排序过程中还需要访问外存

排序分类

插入排序

直接插入 O(n*n) 稳定

 public  void insert(int[] arr,int n){       int j=0;       int tem=0;       for(int i=1;i<n;i++)       {           tem=arr[i];           j=i-1;           while(j>=0&&arr[j]>tem){                arr[j+1]=arr[j];                j--;            }            arr[j+1]=tem;       }         }

Shell排序 O(n*n) 不稳定

public void shell(int[] arr,int n){       int j=0;       int tem=0;    for(int inc=n/2;inc>0;inc=inc/2)        for(int i=inc;i<n;i++){           tem=arr[i];           j=i-inc;           while(j>=0&&arr[j]>tem){                arr[j+inc]=arr[j];                j=j-inc;                }we            arr[j+inc]=tem;    }}

选择排序

直接选择 不稳定

 public void select(int[] arr,int n){            int min=0;            int k=0;            for(int i=0;i<n-1;i++){                min=Integer.MAX_VALUE;                for(int j=i;j<n;j++){                    if(arr[j]<min) {                      min=arr[j];                      k=j;                    }                }                arr[k]=arr[i];                arr[i]=min;            }        }

堆排序 不稳定

交换排序

冒泡排序 稳定

 public void buble(int[] arr,int n){          int tem=0;          for(int i=1;i<n;i++)              for(int j=n-1;j>=i;j--){               //                if(arr[j]>arr[j-1]){                   tem=arr[j];                   arr[j]=arr[j-1];                   arr[j-1]=tem;                            }            }        }

快速排序 不稳定

归并排序 稳定

基数排序 稳定

 public  void main()
原创粉丝点击