直接插入排序直接插入排序
直接插入排序算法中~从空间性能看~直接插入算法仅用了一个辅助单元。从时间复杂
度来看~有序表中逐个插入记录的操作~进行了n-1趟~每趟分为比较关键码和移动记录~
而移动记录的次数和比较关键码的次数取决于待排序列中原来的排列。直接插入排序是一种
2,,稳定的排序方法~时间复杂度为O~可在链式存储结构中实现它的思想。 n
,1,最好的情况:总的比较次数=n-1 总的移动次数=0
,2,最坏的情况,即原来的有序表逆序,:
n1i,(n,2)(n,1) 总比较次数= ,22
n1(i,1),(n,4)(n,1) 总...
直接插入排序
直接插入排序算法中~从空间性能看~直接插入算法仅用了一个辅助单元。从时间复杂
度来看~有序
中逐个插入记录的操作~进行了n-1趟~每趟分为比较关键码和移动记录~
而移动记录的次数和比较关键码的次数取决于待排序列中原来的排列。直接插入排序是一种
2,,稳定的排序方法~时间复杂度为O~可在链式存储结构中实现它的思想。 n
,1,最好的情况:总的比较次数=n-1 总的移动次数=0
,2,最坏的情况,即原来的有序表逆序,:
n1i,(n,2)(n,1) 总比较次数= ,22
n1(i,1),(n,4)(n,1) 总移动次数= ,22
直接插入排序的程序如下:
#include
#define MAX 50 //定义排序数组的最大元素个数
void InputData(int list[],int n){ //输入待排数组各元素的值
cout<<"请输入数据:"<>list[i];
}
void OutputData(int list[],int n){ //输出排序后数组各元素的值
cout<<"排序后的顺序:"<list[i]){
temp=list[i];
j=i-1;
while(list[j]>temp){
list[j+1]=list[j];j--;
}
list[j+1]=temp;
}
OutputData(list,n); }
void main(){
int num; //数组中元素的个数
int list[MAX];
cout<<"请输入数组中元素的个数:"<>num;
InputData(list,num);
InsertSort(list,num); }
本文档为【直接插入排序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。