直接插入排序和希尔排序(完整代码)
2020-09-04 18:44
726 查看
#include<stdio.h>
#include<stdlib.h>
void InsertSort(int a[],int n) //直接插入排序
{
int i,j;
int temp;
for(i=1;i<n;i++)
{
temp=a[i];
j=i-1;
for(j;j>=0&&a[j]>temp;j–)
{
a[j+1]=a[j];
}
a[j+1]=temp;
}
}
void ShellSort(int a[ ],int n) //希尔排序
{
int i,j,gap;
int temp;
for(gap=n/2;gap>0;gap/=2)
{
for(i=gap;i<n;++i)
{
temp=a[i];
for(j=i;j>=gap&&a[j-gap]>temp;j-=gap)
a[j]=a[j-gap];
a[j]=temp;
}
}
}
void print(int array[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d ",array[i]);
}
}
int main()
{
int array[]={4,3,6,9,7,1,2,4,5,0};
int n=10;
// InsertSort(array,n);
ShellSort(array,n);
print(array,n);
}
相关文章推荐
- 插入排序——直接插入排序和希尔排序,C++代码实现
- 八大排序算法及完整c代码—直接插入排序
- 直接插入排序和希尔排序
- 排序算法之直接插入排序与希尔排序
- 八大排序算法之直接插入排序和希尔排序
- 十二.C语言8种排序算法及其实现 1.希尔排序 2.二分插入法 3.直接插入法 4.带哨兵的直接排序法 5.冒泡排序 6.选择排序 7.快速排序 8.堆排序
- 直接插入排序、希尔排序、冒泡排序、快速排序
- 【算法拾遗(java描写叙述)】--- 插入排序(直接插入排序、希尔排序)
- 插入排序(直接插入排序,希尔排序)
- 【数据结构】-直接插入排序、希尔排序Java实现
- 插入排序,折半插入排序,希尔排序的代码
- 直接插入排序、希尔排序、冒泡排序、快速排序、简单选择排序及归并排序
- 算法导论第三版-第6章堆排序操作完整代码(建堆、插入、删除、排序等)
- 选择排序、直接插入排序、希尔排序
- 直接插入排序、希尔排序—C—Python
- 排序算法汇总(选择排序 ,直接插入排序,冒泡排序,希尔排序,快速排序...)
- 排序算法(一)------直接插入排序和希尔排序
- 【算法拾遗(java描述)】--- 插入排序(直接插入排序、希尔排序)
- 排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序...
- 算法系列-直接插入排序和希尔排序