Shell排序(数组)

Shell排序:

将增量设置为gap,将记录分为gap组,每个组内进行简单插入排序,依次将gap减小,直到gap=1为止。

精华:在于每一次的调整,都会使得其局部有序。


/*ShellSort在于将记录分为gap个组,之后组内进行简单插入排序;依次减小gap直到=1。*/

#include
using namespace std;
#define L 6

void ShellSort(int *a, int n)
{
	int gap;
	for(gap=n/2;gap>0;gap=gap/2)
	{
		for(int i=0;i=0&&a[k]>key)
					{
						a[k+gap]=a[k];
						k=k-gap;
					}
					a[k+gap]=key;
				}
			}
		}
	}
}

int main ()
{
	int r[L];
	for (int i=0;i>r[i];
	}
	for (int i=0;i


你可能感兴趣的:(数据结构)