数据结构的排序算法.docx
- 文档编号:9587917
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:14
- 大小:18.17KB
数据结构的排序算法.docx
《数据结构的排序算法.docx》由会员分享,可在线阅读,更多相关《数据结构的排序算法.docx(14页珍藏版)》请在冰豆网上搜索。
数据结构的排序算法
数据结构排序算法及代码整理收藏
排序;
1、插入排序(直接插入排序和希尔排序)
2、选择排序(直接选择排序和堆排序)
3、交换排序(冒泡排序和快速排序)
4、归并排序
5、基数排序
---------------------
直接插入排序
说明:
逐个将后一个数加到前面的排好的序中。
在直接插入排序过程中,对其中一个记录的插入排序称为一次
排序;直接插入排序是从第二个记录开始进行的,因此,长度为n的记录序列需要进行n-1次排序才能完成整个
序列的排序。
时间复杂度为O(n2)。
voidInsertSort(elemtypex[],intn)
/*用直接插入法对x[0]-x[n-1]排序*/
{
inti,j;
elemtypes;
for(i=0;i { s=x[i+1]; j=i; while(j>-1&&s.key { x[j+1]=x[j]; j--; } x[j+1]=s; } } --------------------- 希尔排序 说明: 希尔排序又称缩小增量排序,增量di可以有各种不同的取法,但最后一次排序时的增量必须为1,最简 单可取di+1=di/2(取小)。 时间复杂度为O(n(log2n)2)。 voidShellSort(elemtypex[],intn,intd[],intNumber) /*用希尔排序法对记录x[0]-x[n-1]排序,d为增量值数组*/ /*Number为增量值个数,各组内采用直接插入法排序*/ { inti,j,k,m,Span; elemtypes; for(m=0;m { Span=d[m]; for(k=0;k { for(i=k;i { s=x[i+Span]; j=i; while(j>-1&&s.key { x[j+Span]=x[j]; j-=Span; } x[j+Span]=s; } } } } 插入排序个人总结(cute): 1.插入排序,随机来一个数据,给他找一个“暂时适合“的位置,后面到来的数据,可能会抢夺前面人的位置 2.适合待排序集合不断更新的情况,稳定集合也可以使用此方法 ---------------------------- 直接选择排序 说明: 每次将后面的最小的找出来插入前面的已排好的序中。 同理,具有n个记录的序列要做n-1次排序。 时间复杂度为O(n2)。 voidSelectSort(elemtypex[],intn) /*用直接选择排序法对x[0]-x[n-1]排序*/ { inti,j,Small; elemtypeTemp; for(i=0;i { Small=i; for(j=i+1;j if(x[j].key Small=j; if(Small! =i) { Temp=x[i]; x[i]=x[Small]; x[Small]=Temp; } } } ----------------------------- 堆排序: #include #include usingnamespacestd; intA[11],heap_size; voidMaxHeapify(intA[],inti) { intlargest=-1; intleft=2*i;//获取根节点的左孩子 intright=2*i+1;//获取根节点的右孩子 if(left<=heap_size&&A[left]>A[i]) largest=left; else largest=i; if(right<=heap_size&&A[right]>A[largest]) largest=right; if(largest! =i)//根节点不是最大值则交换后继续递归 { swap(A[i],A[largest]); MaxHeapify(A,largest); } } voidBuildMaxHeap(intA[]) { for(inti=10/2;i>=1;i--) MaxHeapify(A,i); } intmain() { inti; heap_size=10; for(i=1;i<11;i++) cin>>A[i]; BuildMaxHeap(A); cout<<"建立的最大堆为: "; for(i=1;i<11;i++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 排序 算法
![提示](https://static.bdocx.com/images/bang_tan.gif)