C++ 直接选择排序的实现实例代码
2017-08-31 19:00
591 查看
直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。
设数组为a[0…n-1]。
1. 初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=1
2. 将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。
3. i++并重复第二步直到i==n-1。排序完成。
void InsertionSort(int *a, int len)
{
for (int j=1; j<len; j++)
{
int key = a[j];
int i = j-1;
while (i>=0 && a[i]>key)
{
a[i+1] = a[i];
i--;
}
a[i+1] = key;
}
}
设数组为a[0…n-1]。
1. 初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=1
2. 将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。
3. i++并重复第二步直到i==n-1。排序完成。
void InsertionSort(int *a, int len)
{
for (int j=1; j<len; j++)
{
int key = a[j];
int i = j-1;
while (i>=0 && a[i]>key)
{
a[i+1] = a[i];
i--;
}
a[i+1] = key;
}
}
相关文章推荐
- C++ 直接选择排序的实现实例代码
- 插入排序——直接插入排序和希尔排序,C++代码实现
- 直接选择排序的C++实现及随机数组的产生方法
- 直接插入排序的C++实现代码
- 插入排序、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序和LST基数排序的C++代码实现
- c++实现数据结构中的各种排序方法:直接插入、选择,归并、冒泡、快速、堆排序、shell排序
- C++ 归并排序的实现实例代码
- 算法代码实现之选择排序,C/C++ 实现
- 经典算法与数据结构的c++实现——直接选择排序
- 选择排序的实现——直接选择排序
- 交换排序——冒泡排序和快速排序,C++代码实现
- 各类排序C++实现(冒泡,选择,插入,快排,归并,堆排)
- C实现单链表直接选择排序
- 用JAVA实现排序算法之三:直接选择排序
- 排序法系列之二----插入排序(直接插入,希尔排序,二分插入,链表插入排序)的C++代码实现
- 《Head First设计模式》之装饰者模式实例代码C++实现
- 基础排序——冒泡排序、选择排序、插入排序的讲解、代码实现
- 希尔(Shell)排序的C++实现代码
- 选择排序的c实现代码
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现