#include<iostream>
#include<vector>
using namespace std;
//手撕一个哈希排序
void hashSort(vector<int>& dataVec)
{
int num = dataVec.size();
for (int length=num/2;length>=1;length/=2)
{
for (int i=length;i<num;i++)
{
//下面进行排序操作
int temp = dataVec[i];
int j = i - length;
for (;j>=0&&dataVec[j]>temp;j-= length)
{
dataVec[j + length] = dataVec[j];
}
dataVec[j + length] = temp;
}
}
}
void testHashSort()
{
int num = 0;
cin >> num;
vector<int> allDataVec(num);
cout << "排序前数据:" << endl;
for (int i = 0; i < num; i++)
{
allDataVec[i] = rand();
cout << allDataVec[i] << " ";
}
cout << endl;
hashSort(allDataVec);
cout << "排序后数据:" << endl;
for (const auto& item : allDataVec)
{
cout << item << " ";
}
cout << endl;
}
int main()
{
testHashSort();
return 0;
}
手撕一个哈希排序---插入排序的优化
最新推荐文章于 2024-10-02 22:45:05 发布