a program a day 23 (ds,shell's sort)
2010-10-19 23:53
274 查看
/**
*shell's sort
**/
#include<stdio.h>
void shellSort(int array[],int n)
{
int gap = n,flag = 0;
int tmp,j = 0;
while(gap > 1)
{
gap /= 2;
do
{
flag = 0;
for(int i = 0;i < n - gap;i++)
{
j = i + gap;
if(array[i] > array[j])
{
tmp = array[i];
array[i] = array[j];
array[j] = tmp;
flag = 1;
}
}
}while(flag);
}
}
int main()
{
int arr[10] = {2,5,6,3,7,8,0,9,12,1};
printf("before sorted:\n");
for(int i = 0;i != 10;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
shellSort(arr,10);
printf("after sorted:\n");
for(int j = 0;j != 10;j++)
{
printf("%d ",arr[j]);
}
return 0;
}
*shell's sort
**/
#include<stdio.h>
void shellSort(int array[],int n)
{
int gap = n,flag = 0;
int tmp,j = 0;
while(gap > 1)
{
gap /= 2;
do
{
flag = 0;
for(int i = 0;i < n - gap;i++)
{
j = i + gap;
if(array[i] > array[j])
{
tmp = array[i];
array[i] = array[j];
array[j] = tmp;
flag = 1;
}
}
}while(flag);
}
}
int main()
{
int arr[10] = {2,5,6,3,7,8,0,9,12,1};
printf("before sorted:\n");
for(int i = 0;i != 10;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
shellSort(arr,10);
printf("after sorted:\n");
for(int j = 0;j != 10;j++)
{
printf("%d ",arr[j]);
}
return 0;
}
相关文章推荐
- a program a day 20(ds,straight insertion sort)
- 【DS】排序算法之希尔排序(Shell Sort)
- a program a day 19(ds,binary search)
- a program a day 22 (ds,selection sort)
- a program a day 25(ds,quick sort)
- a program a day 21(ds,bubble sort)
- 每天一个小算法(Shell Sort1)
- 每天一个小算法(Shell Sort3)
- 希尔排序(shell sort)
- 希尔排序(Shell Sort)
- [shell]sort
- shell的sort命令的-k参数
- SHELL 脚本学习 day _1 test 指令
- 排序算法---希尔排序(Shell Sort)
- Uva 10152 - ShellSort//排序,线性表
- 希尔排序算法(Shell Sort) Java实现
- Heap_Sort,Shell_Sort and Quick_Sort
- UVa 10152 - ShellSort 数据结构专题
- [SHELL]:sort 命令详解
- shell——排序(sort)