QuickInsertionSort -- C++实现


结合插入排序的快速排序

实现代码

// QuickInsertionSort.h
#ifndef QUICKINSERTIONSORT_H
#define QUICKINSERTIONSORT_H

#include<iostream>
using namespace std;

#include "Component.h"

namespace jay{

	template< typename T >
	void QuickInsertionSort(T *input,int left,int right)
	{
		if (right <= left + 7)
		{
			InsertionSortByIndex(input,left,right);
			return;
		}

		// 切分元素的索引
		int nPartitionIndex = Partition(input,left,right);

		// 切分元素nPartitionIndex的左部分进行排序
		QuickInsertionSort(input,left,nPartitionIndex-1);

		// 切分元素nPartitionIndex的右部分进行排序
		QuickInsertionSort(input,nPartitionIndex+1,right);
	}

};

#endif

 

暂无评论

注册用户登录后才能发表或者回复评论,请先登录 注册。