C的数据结构---八大排序中篇

幺幺零

关注

阅读 59

2022-03-27

1.希尔排序

 分组处理

//希尔排序

#include <stdio.h>
#include <stdlib.h>

void Print(int *arr, int size)
{
	for (int i = 0; i < size; i++)
	{
		printf(" %d  ", arr[i]);
	}
	printf("\n");
}

void Shell_Sort(int *arr, int len)
{
	int gap = len;
	do
	{
		gap = gap / 3 + 1;
		for (int i = gap; i<len; i++) 
		{
			int k = i;
			int tmp = arr[i];
			for (int j = i - gap; j >= 0 && arr[j]>tmp; j -= gap)
			{
				arr[j + gap] = arr[j];
				k = j;
			}
			arr[k] = tmp;	
		}
		Print(arr, len);
	} while (ga

精彩评论(0)

0 0 举报