数据结构排序算法(直接插入排序附java代码)
插入排序:
1)直接插入排序:
理解:假设有n个数需要排序,则第一个数已经排序,剩下的n-1个数没有排序,现在需要将剩下的n-1个数,一个一个找到合适的位置插入进去。
【数据结构排序算法(直接插入排序附java代码)】第一趟排序结束:得到已经排序的数字的个数是2,再加上剩下的n-2个数字
例如:待排序序列(49,38,65,97,76,13,27,49),第一趟排序结束(38 49 65 97 76 13 27 49 )
直接插入排序实现java代码如下:
private static void ZSort(int a[]) {
// TODO Auto-generated method stub
/*
* 直接插入排序算法 第一个元素已经排序,剩下n-1个没有排序, 一个一个比较
* 第一轮循环,执行n-1次
* 第二轮循环,当比他大后移,否则break
*/
for (int i = 1;
i < a.length;
++i) {
int temp = a[i];
int j = i - 1;
for (;
j >= 0;
j--) {if (temp < a[j]) {
a[j + 1] = a[j];
} else {
break;
}
}
a[j + 1] = temp;
}
}public static void main(String[] args) {
int a[] = { 49, 38, 65, 97, 76, 13, 27, 49 };
ZSort(a);
for (int i : a) {
System.out.print(i + " ");
}
}
(欢迎指正!再更新其他算法)
推荐阅读
- 画解算法(1.|画解算法:1. 两数之和)
- Guava|Guava RateLimiter与限流算法
- 一个选择排序算法
- SG平滑轨迹算法的原理和实现
- 《算法》-图[有向图]
- 排序(归并排序)
- LeetCode算法题-11.|LeetCode算法题-11. 盛最多水的容器(Swift)
- 虚拟DOM-Diff算法详解
- 《数据结构与算法之美》——队列
- 【图解】9张图彻底搞懂堆排序