数据结构常见的排序
来源:互联网 发布:郑州软件应用学校 编辑:程序博客网 时间:2024/05/22 17:02
1、冒泡排序--
两层循环的run,有一个优化指出就是当后面的数打于前面一个是可以结束一个循环这样可以节省时间;
2、插入排序,最好情况为O(NlogN):
void insertSort(int *a,const int &length)
{
int n=length;
int j;
for(int i=1;i<n;i++)
{
int temp=a[i];
for( j=i;j>0;j--)
{
if(temp<a[j-1])
{
a[j]=a[j-1];
}
else
break;
}
a[j]=temp;
}
}
void SortHill(int *a,int length,int arrange)
{
int add=arrange/2;
while(add!=0)
{
for(int i=0;i+add<length;i++)
{
if(a[i]>a[i+add])
{
int temp=a[i+add];
a[i+add]=a[i];
a[i]=temp;
}
}
add=add/2;
}
}
void mergerSort(int *a ,int n1,int *b ,int n2,int *c)
{
int apre=0,cur=0,index=0;
for(;1;)
{
if(a[apre]>=b[cur])
{
c[index++]=b[cur];
cur++;
}
else
{
c[index++]=a[apre];
apre++;
}
if(apre==n1||cur==n2)
break;
}
while(apre<n1)
{
c[index++]=a[apre++];
}
while(cur<n2)
{
c[index++]=b[cur++];
}
}
void quickSort(int *a,int n)
{
int i=0,j=n-1;
while(i!=j)
{
if(a[i]>=a[j])
{
int temp=a[j];
a[j]=a[i];
a[i]=temp;
j--;
}
if(a[i]<a[j])
{
i++;
}
}
}
void bucketsort(int *a,int n,int *s)
{
for(int i=0;i<n;i++)
{
s[a[i]]+=1;
}
}
- 数据结构常见的排序
- 数据结构-常见的排序算法
- 数据结构之常见的排序算法1
- 数据结构之常见的排序算法2
- 几种常见的【排序】与【数据结构】
- java 数据结构 常见的排序算法
- 数据结构中几种常见的排序方法
- 【数据结构】几种常见的排序算法
- 数据结构常见的八大排序算法
- 数据结构常见的八大排序算法
- 数据结构和算法--常见的排序算法
- 【数据结构】常见的排序方法的实现以及性能对比
- OC学习之道:数据结构中几种常见的排序算法:选择排序,插入排序.快速排序
- 【数据结构】常见排序算法复杂度
- 数据结构之常见排序算法
- 数据结构几种常见排序
- 【数据结构】常见的7种比较排序算法1
- 【数据结构】常见的7种比较排序算法2
- Codeforces Round #431 (Div. 2) B, C
- 找一个坚持的理由
- 欢迎使用CSDN-markdown编辑器
- C语言和C++之面向对象的引入(oop)
- Halcon 函数的创建流程
- 数据结构常见的排序
- TCP协议中的三次握手和四次挥手(图解)
- Is It A Tree? (kuskal+状态压缩)
- Ext JS5 API 目录介绍&Ext类
- T4 模板 (Text Template Transformation Toolkit)
- 开学季
- 奇货商城重构——webpack自动化工程
- java 编程思想的学习笔记
- 线段树常用操作