C++排序算法(7种)
来源:互联网 发布:win7网络客户端安装 编辑:程序博客网 时间:2024/06/05 06:11
void insertsort(int a[],int n) //简单插入排序
{
int i,j,k,t;
for(i=1;i<n;i++)
for(j=0;j<i;j++)
if(a[j]>a[i])
{
t=a[i];
for(k=i;k>j;k--) a[k]=a[k-1];
a[j]=t;
break;
}
}
void InsertSort(int a[],int n) //折半插入排序
{
int i,j,temp,low,high,m;
for(i=1;i<n;i++)
{
temp=a[i];
low=0;high=i-1;
while(low<=high)
{
m=(low+high)/2;
if(temp<a[m]) high=m-1;
else low=m+1;
}
for(j=i-1;j>=low;j--) a[j+1]=a[j];
a[low]=temp;
}
}
void listinsertsort(int aa[],int n) //表插入排序(不需要移动元素 )
{
int i;
int j,j0;
const int maxint=20000;
slnode r[n+1];
r[0].a=maxint;r[0].next=1;
r[1].next=0;
for(i=0;i<10;i++)
r[i+1].a=aa[i];
for(i=2;i<11;i++)
{
j=r[0].next;
j0=0;
while(r[i].a>r[j].a) {j0=j;j=r[j].next;}
r[j0].next=i;
r[i].next=j;
}
arrange(r,n+1);
for(i=0;i<10;i++)
aa[i]=r[i+1].a;
}
void selectsort(int a[],int n)
{ //简单选择排序...
int i,j,k,t;
for(i=0;i<n;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(a[j]<a[k]) k=j;
if(k!=i)
{ t=a[k];a[k]=a[i];a[i]=t;}
}
}
- 算法-排序(C#)
- C++: 7种排序 算法原理展示
- 6 种排序算法(C)
- 算法 - 冒泡排序(C#)
- 算法 - 快速排序(C#)
- 算法 - 插入排序(C#)
- 算法 - 选择排序(C#)
- 算法 - 堆排序(C#)
- 算法 - 交换排序(C++)
- 算法 - 希尔排序(C)
- 算法 - 归并排序(C#)
- 快速排序算法(C)
- 排序算法总结(C++)
- 排序算法(C语言)
- C 排序算法(一)
- 排序算法(C实现)------ 冒泡排序
- 排序算法(c实现)------- 插入排序
- 排序算法(C实现)------- 希尔排序
- Google Maps API第三版发布
- 激励员工的49个细节精华
- sprintf
- 远程连接mysql数据库权限问题
- Java1.5泛型指南中文版
- C++排序算法(7种)
- Tomcat服务命令!
- JdbcUtil--JNDI
- Heap 一出技术分析
- ==与equals
- 分布式数据库复习总结
- gridview获取当前行索引
- 压缩小工具(压缩多个文件加日期后缀)
- 五种JSP页面跳转方法详解