- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
各个排序算法及其代码.doc
常见排序算法的实现(一)→插入排序
插入排序是最简单最直观的排序算法了,它的依据是:遍历到第N个元素的时候前面的N-1个元素已经是排序好的了,那么就查找前面的N-1个元素把这第N个元素放在合适的位置,如此下去直到遍历完序列的元素为止。 算法的复杂度也是简单的,排序第一个需要1的复杂度,排序第二个需要2的复杂度,因此整个的复杂度就是 1 + 2 + 3 + …… + N = O(N ^ 2)的复杂度。[详细内容] void insert_sort(int s[],int n)
{
int i,j,temp;
for(i=1;in;i++)
{
temp=s[i];
j=i-1;
while(j=0s[j]temp)
{
s[j+1]=s[j];
j--;
}
s[j+1]=temp;
}
} 常见排序算法的实现(二)→shell排序 shell排序是对插入排序的一个改装,它每次排序把序列的元素按照某个增量分成几个子序列,对这几个子序列进行插入排序,然后不断缩小增量扩大每个子序列的元素数量,直到增量为一的时候子序列就和原先的待排列序列一样了,此时只需要做少量的比较和移动就可以完成对序列的排序了。[详细内容]
void shell_sort(int s[],int n)
{//希尔
int d=0;
int i,j,temp;
for(d=n/2;d=1;d/=2)
{
for(i=d;in;i++)
{
temp=s[i];
j=i-d;
while(j=0s[j]temp)
{
s[j+d]=s[j];
j=j-d;
}
s[j+d]=temp;
}
}
}
常见排序算法的实现(四)→冒泡排序
冒泡排序算法的思想:很简单,每次遍历完序列都把最大(小)的元素放在最前面,然后再对剩下的序列从父前面的一个过程,每次遍历完之后待排序序列就少一个元素,当待排序序列减小为只有一个元素的时候排序就结束了。因此,复杂度在最坏的情况下是O(N ^ 2)。
void bubble_sort(int s[],int n)
{
int i,j;
int temp;
bool flag;
for(i=n-1;i=1;i--)
{
flag=true;
for(j=0;ji;j++)
{
if(s[j]s[j+1])
{
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
flag=false;
}
}
if(flag==true)
break;
}
}
常见排序算法的实现(五)→快速排序
快速排序的算法思想: 选定一个枢纽元素,对待排序序列进行分割,分割之后的序列一个部分小于枢纽元素,一个部分大于枢纽元素,再对这两个分割好的子序列进行上述的过程。
?// 对一个给定范围的子序列选定一个枢纽元素,执行完函数之后返回分割元素所在的位置,// 在分割元素之前的元素都小于枢纽元素,在它后面的元素都大于这个元素int partition(int s[],int low,int high)
{
int temp;
int pivo=s[low];
while(lowhigh)
{
while(lowhighs[high]=pivo)
{
high--;
}
-----(此处可以加if(lowhigh)
temp=s[high];
s[high]=s[low];
s[low]=temp;
while(lowhighs[low]=pivo)
{
low++;
}
temp
您可能关注的文档
- 动词时态习困难分析及动词时.doc
- 动词时态分析.doc
- 动词时态应用技巧(小结及练习).doc
- 劳动者的养老保险法律制度探讨.doc
- 包装功能和包装结构设计原则.doc
- 包装和包装设计策略分析.doc
- 化学九年级上册期末章节复习资料.doc
- 化学分析工.doc
- 化学分析工职业资格标准.doc
- 化学反应与能量教材分析与反思.doc
- 研学旅行在高中地理教学中的应用与地理实践能力提升路径探究教学研究课题报告.docx
- 数字化评价对学生自我效能感的影响:基于初中生学习目标的视角教学研究课题报告.docx
- 《区域金融发展与经济协调发展关系研究:基于金融结构的视角》教学研究课题报告.docx
- 初中英语:校园植物四季生长对英语教学活动设计的启示与策略教学研究课题报告.docx
- 小学英语教学中信息化教学手段的运用与听说能力培养教学研究课题报告.docx
- 2025年全球低空通航产业航空培训与人才培养白皮书.docx
- 中国建筑钢筋连接接头行业市场规模及未来投资方向研究报告.pdf
- 3 《在线旅游平台用户信任构建中的信任教育策略研究》教学研究课题报告.docx
- 吉利汽车全球化并购战略与汽车行业技术创新研究报告.docx
- 2025连锁零售新业态风险评估与试点运营品牌影响力评估报告.docx
文档评论(0)