阿拉特斯科普:常见排序算法的实现(一)
来源:百度文库 编辑:偶看新闻 时间:2024/05/04 05:43:13
插入排序是最简单最直观的排序算法了,它的依据是:遍历到第N个元素的时候前面的N-1个元素已经是排序好的了,那么就查找前面的N-1个元素把这第N个元素放在合适的位置,如此下去直到遍历完序列的元素为止。
算法的复杂度也是简单的,排序第一个需要1的复杂度,排序第二个需要2的复杂度,因此整个的复杂度就是
1 + 2 + 3 + …… + N = O(N ^ 2)的复杂度。
// 插入排序
void InsertSort(int array[], int length)
{
int i, j, key;
for (i = 1; i < length; i++)
{
key = array[i];
// 把i之前大于array[i]的数据向后移动
for (j = i - 1; j >= 0 && array[j] > key; j--)
{
array[j + 1] = array[j];
}
// 在合适位置安放当前元素
array[j + 1] = key;
}
}
如何用Excel实现单循环比赛的排序算法?
用VB实现常用排序算法的动态演示?
谁会对C++中的排序算法,比如冒泡排序,插入排序,选择排序,快速排序等的MPI并行实现代码?
用pascal语言实现希尔排序算法
各种排序算法实现和比较
用C++编写函数实现排序,设计排序算法对N个学生的成绩进行排序,排序方式根据函数的style参数确定
整数排序算法的问题?
堆排序的具体算法
快速排序的循环算法
求几种排序法的算法
全排序的算法(PASCAL)
设计CAI实现动态演示插入排序算法
设计一个用链表表示的简单选择排序的算法,并实现之(试验报告)
pascal 排序算法的一道选择题。Help!
给出一种拓扑排序的改进算法
关于数据库排序输出的算法?
C语言中排序的算法是什么
用JAVA写出冒泡排序的算法
链表的冒泡排序算法
关于排序和查找的算法
结构体排序算法
asp排序算法
什么是起泡排序算法??
急求一排序算法