排序算法
来源:互联网 发布:节奏大师网络拦截 编辑:程序博客网 时间:2024/06/16 05:01
直接插入排序
1.整体代码截图
2.核心部分代码
private static void InsertSort(int[] a, int n)
{
//直接插入排序
//理论:默认第一个元素时哨兵元素,是有序列表。
// 从第一个元素开始与第0个元素比较
//如果哨兵元素值小于上一个元素,移动有序列表后替换元素
//如果哨兵元素值大于等于上一个元素,则不处理现有顺序,继续处理下一个元素。
for(int index= 1; index<n; index++){
if(a[index] < a[index-1]){ //哨兵元素值小于上一个元素,移动有序表后替换
int pre= index-1;
int curNum = a[index]; //复制为哨兵,即存储待排序元素
while(pre>=0 && curNum < a[pre]){ //查找在有序表的插入位置
a[pre+1] = a[pre];//哨兵位置=上一个元素的值
pre--; //哨兵前移
}
a[pre+1] = curNum; //插入到正确位置
}
print(a,n,index);
}
//直接插入排序
//理论:默认第一个元素时哨兵元素,是有序列表。
// 从第一个元素开始与第0个元素比较
//如果哨兵元素值小于上一个元素,移动有序列表后替换元素
//如果哨兵元素值大于等于上一个元素,则不处理现有顺序,继续处理下一个元素。
for(int index= 1; index<n; index++){
if(a[index] < a[index-1]){ //哨兵元素值小于上一个元素,移动有序表后替换
int pre= index-1;
int curNum = a[index]; //复制为哨兵,即存储待排序元素
while(pre>=0 && curNum < a[pre]){ //查找在有序表的插入位置
a[pre+1] = a[pre];//哨兵位置=上一个元素的值
pre--; //哨兵前移
}
a[pre+1] = curNum; //插入到正确位置
}
print(a,n,index);
}
}
0 0
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- App第三方登录和分享开发的那些坑
- HashTable和HashMap区别
- chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
- 传引用&传值
- Halcon腐蚀膨胀算子
- 排序算法
- 使用PipedInputStream 和 PipedOutputStream 上传文件,并更新进度
- 【Servlet开发】servlet的请求与响应(二)
- mybatis注解详解
- hdu 4474 bfs
- java 路径分隔符
- 递归
- Android学习笔记--RecycleView用法
- POJ 2392 Space Elevator 排序+多重背包