简单写一下插入排序与希尔排序

1.插入排序(直接上代码了,就不说明了)

#include <iostream>
using namespace std;
int main()
{
	int arr[] = { 9,9,1,2,31,43,4,2,8,7,5 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (int i = 1; i < sz; i++)
	{
		int j = i - 1;
		int target = arr[i];
		while (j > -1 && target > arr[j])
		{
			arr[j + 1] = arr[j];
			j--;
		}
		arr[j + 1] = target;
	}

2.希尔排序(插入排序的变种,虽然是三重循环但效率不会差)(直接上代码了)

#include <iostream>
using namespace std;
int main()
{
	int arr[] = { 9,9,1,2,31,43,4,2,8,7,5 };
	int sz = sizeof(arr) / sizeof(arr[0]);
for (int interval = sz / 2; interval > 0; interval /= 2)
	{
		for (int i = interval; i < sz; i++)
		{
			int j = i - interval;
			int target = arr[i];
			while (j > -1 && target > arr[j])
			{
				arr[j + interval] = arr[j];
				j -= interval;
			}
			arr[j + interval] = target;
		}
	}
}

猜你喜欢

转载自blog.csdn.net/yss233333/article/details/123487672