博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
经典的排序算法
阅读量:6075 次
发布时间:2019-06-20

本文共 734 字,大约阅读时间需要 2 分钟。

1.快速排序

2.堆排序

3.归并排序[o(n);o(nlog);稳定排序]

void MergeSort(int a[],int left,int right)

{
if(left<right){        //至少有2个元素
int mid=(left+right)/2;   //取中点left+(right-left)/2
MergeSort(a,left,mid);
MergeSort(a,mid+1,right);
Merge(a,b,left,mid,right);  //合并到数组b
Copy(a,b,left,right);      //复制回数组a
}
}
void Merge(int a[],int b[],int left,int mid,int right )
{
int i=left,j=mid+1,k=left;
while((i<=mid)&&(j<=right))//当两个子序列都还有记录
if(a[i]<=a[j])
b[k++]=b[i++];
else
b[k++]=a[j++];
while(j<=right)      //当j所指的序列中还有记录时全部拷至b
b[k++]=a[j++];
while(i<=mid)           //当i所指的序列中还有记录时全部拷至b  
b[k++]=a[i++];
}

void Copy(int a[],int b[],int left,int right)

{
for(int i=left;i<=right;i++)
a[i++]=b[j++];
}

转载于:https://www.cnblogs.com/siliconvalley/p/3166199.html

你可能感兴趣的文章
nginx反向代理、文件批量改名及统计ip访问量等精髓总结
查看>>
当前端玩起 CoolQ:做个技术文章推送机器人
查看>>
npm入门,这篇就够了
查看>>
搞定JavaScript算法系列--堆排序
查看>>
BitcoinSV node v0.1.1 版本更新解读
查看>>
iOS面试问答集锦,从容应对各种面试技术难题!
查看>>
《YYModel源码分析(二)NSObject+YYModel》
查看>>
实用抓包工具:whistle
查看>>
Terraform 企业版支持“Policy Sets”
查看>>
babel本地编辑环境搭建
查看>>
canvas实现环形进度条
查看>>
长春初中作文补习学校哪家好?
查看>>
iOS之BLE蓝牙SDK开发个人总结(基础篇)
查看>>
iOS 数组升序排列方法
查看>>
批流统一计算引擎的动力源泉—Shuffle机制的重构与优化
查看>>
给我十分钟!带你Flutter从入门到上天!!!
查看>>
AI居然也会作弊?CycleGAN神经网络的训练中出现新行为
查看>>
前端日刊君来也
查看>>
千呼万唤始出来!地平线即将发布第一代人工智能“中国芯”
查看>>
GMQ钱包为用户提供安全可靠、便捷高效的数字资产管理工具
查看>>