排序2
来源:互联网 发布:ug加工编程步骤 编辑:程序博客网 时间:2024/06/07 19:31
//简单选择排序
void SelectSort(SqList *L)
{
int i,j,min;
for(i=1;i<L->length;i++)
{
min = i;
for (j = i+1;j<=L->length;j++)
{
if(L->r[j]<L->r[min])
{
min=j;
}
}
if(i != min)
{
swap(L,i,min);
}
}
}
//直接插入排序
void InsertSort(SqList *L)
{
int i,j;
for(i=2;i<=L->length;i++)
{
if (L->r[i]<L->r[i-1]) /* 需将L->r[i]插入有序子表 */
{
L->r[0]=L->r[i]; /* 设置哨兵 */
for(j=i-1;L->r[j]>L->r[0];j--)
{
L->r[j+1]=L->r[j]; /* 记录后移 */
}
L->r[j+1]=L->r[0]; /* 插入到正确位置 */
}
}
}
//希尔排序
void ShellSort(SqList *L)
{
int i,j;
int increment=L->length;
do
{
increment=increment/3+1; /* 增量序列 */
for(i=increment+1;i<=L->length;i++)
{
if (L->r[i]<L->r[i-increment]) /* 需将L->r[i]插入有序增量子表 */
{
L->r[0]=L->r[i]; /* 暂存在L->r[0] */
for(j=i-increment;j>0 && L->r[0]<L->r[j];j-=increment)
{
L->r[j+increment]=L->r[j]; /* 记录后移,查找插入位置 */
}
L->r[j+increment]=L->r[0]; /* 插入 */
}
}
}
while(increment>1);
}
- 排序 2 选择排序
- 排序 : 2 插入排序
- 排序 : 2 插入排序
- 排序(2) -- 选择排序
- 排序 - 归并排序 [2]
- 排序2-快速排序
- 排序2-插入排序
- 排序2-希尔排序
- 排序2:选择排序
- 排序-2-选择排序
- 排序算法2-快速排序、归并排序
- 排序2------计数排序,桶排序
- 排序 - 插入排序 [2 - 希尔排序]
- 排序 - 交换排序 [2 -- 快速排序]
- 排序2
- 2排序
- 排序2
- 排序2
- vlc的应用之三:动态调用vlc-0.9.4的libvlc.dll
- Linux下强制T掉登录的用户
- 关于directfb-exmaple ./configure 中发现的问题
- HDU 2006 求奇数的乘积
- utf-8编码从ACCESS输出汉字出现乱码的解决
- 排序2
- 排序3
- BAT 读取ini配置文件方法
- 获取系统时间函数
- AndroidGUI20:GridView常用技巧
- Quartz的配置及使用和定时触发功能的实现
- HDU 2007 平方和与立方和
- 如何实现Oracle修改用户权限
- Linux NAND FLASH驱动代码分析