算法
来源:互联网 发布:婚礼录像制作软件 编辑:程序博客网 时间: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()
阅读全文
0 0
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- Python3操作MySql数据库
- 【Codeforces B. Balanced Substring】
- C语言 乘法计算
- Hibernate-主键生成策略汇总
- <10/12>集训周记
- 算法
- select、poll、epoll之间的区别总结[整理]
- IT行业笔试题在线测试
- 并查集的理解
- redis set集合应用场景
- Excel在统计分析中的应用—第五章—概率分布及概率分布图-Part7-连续型概率分布(标准正态分布函数的应用)
- Android Studio添加framework.jar编译
- 数字签名与数字证书
- 每天一个linux命令(6):rmdir 命令