经典排序算法 – 插入排序Insertion sort
2013-03-28 23:16
295 查看
插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。
插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行。
图1演示了对4个元素进行直接插入排序的过程,共需要(a),(b),(c)三次插入。
代码
public class InsertionSorter
{
public void Sort(int[] arr)
{
for (int i = 1; i < arr.Length; i++)
{
int t = arr[i];
int j = i;
while ((j > 0) && (arr[j - 1] > t))
{
arr[j] = arr[j - 1];//交换顺序
--j;
}
arr[j] = t;
}
}
}
引用
http://javatd.iteye.com/blog/386450 http://www.cnblogs.com/dreamof/archive/2009/05/05/1450058.html
我始终认为,理解很重要,一是因为实际工作使用的场景极其少…二是理解后可以应付面试官的提问,这时候考的就是理解不理解
插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行。
图1演示了对4个元素进行直接插入排序的过程,共需要(a),(b),(c)三次插入。
代码
public class InsertionSorter
{
public void Sort(int[] arr)
{
for (int i = 1; i < arr.Length; i++)
{
int t = arr[i];
int j = i;
while ((j > 0) && (arr[j - 1] > t))
{
arr[j] = arr[j - 1];//交换顺序
--j;
}
arr[j] = t;
}
}
}
引用
http://javatd.iteye.com/blog/386450 http://www.cnblogs.com/dreamof/archive/2009/05/05/1450058.html
我始终认为,理解很重要,一是因为实际工作使用的场景极其少…二是理解后可以应付面试官的提问,这时候考的就是理解不理解
相关文章推荐
- 经典算法(8)- 插入排序(Insertion Sort) 及三个基本排序算法的比较
- 经典排序算法 – 插入排序Insertion sort
- 排序算法-插入排序 Insertion Sort Θ(n-n)
- 排序算法 之 插入排序InsertionSort
- 基础排序算法 – 插入排序Insertion sort
- 排序算法总结之插入排序 Insertion Sort
- 基础排序算法 – 插入排序Insertion sort
- 排序算法--插入排序(Insertion Sort)_C#程序实现
- 排序算法——插入排序(Insertion Sort)
- 排序算法(一)—插入排序(Insertion sort)
- 【LeetCode-面试算法经典-Java实现】【147-Insertion Sort List(链表插入排序)】
- 排序算法---插入排序(Insertion Sort)
- 排序算法——插入排序(Insertion Sort)
- [硕.Love Python] InsertionSort(插入排序)
- [MIPS汇编语言]InsertionSort插入排序
- 算法从排序开始——插入排序(Insertion Sort)C语言及Java实现
- leetcode——Insertion Sort List 对链表进行插入排序(AC)
- 漫谈经典排序算法:二、各种插入排序解析及性能比较
- 经典排序算法 - 基数排序Radix sort
- 从VB来看-InsertionSort(VB插入排序)