赞
踩
排序的目的就是为了让查找效率变得更高。
指的是关键字相同的元素之间在排序完成后相对位置不发生改变。
1)不稳定算法
2)有些算法可以稳定,但通过微调代码也可以不稳定。
在排序过程中,待排序的数据全部被载入在内存中;
由于数据过多,导致待排序的数据只能部分载入在内存中,在排序过程中会有内存和磁盘之间的数据交换;(减少磁盘的读写次数)
比较、移动。
每次将一个记录按照其关键字的大小插入到已经排好的序列中,直至全部记录插入完毕。
例如:
int arr[]={
16,1,45,23,99,2,18,67,42,10};---{
1,16,....}---{
1,16,45,....}
---{
1,16,23,45,.....}---{
1,16,23,45,99}---{
1,2,16,23,45,99}
---{
1,2,16,18,23,45,99,....}---{
1,2,16,18,23,42,45,99,...}
---{
1,2,10,16,18,23,45,67,99}---{
1,2,10,16,18,23,42,45,67,99}
实现代码:
#include<iostream> using namespace std; //直接插入排序 template <typename T>//T代表数组元素类型 void InsertSort(T myarray[], int length) { if (length <= 1) { return; } for (int i = 1; i < length; i++)//从第二个元素开始比较 { if (myarray[i] < myarray[i - 1]) { T temp = myarray[i];//暂存myarray[i],防止后续移动元素时值被覆盖掉 int j; for (j = i -
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。