栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

基础排序方法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基础排序方法

1.冒泡排序

2.选择排序

3.插入排序

4.希尔排序

5.快速排序

代码如下:分别对应sort 1~5

#include
#include
#define max 20
using namespace std;
void swap(int& a, int& b)
{
	int temp = a;
	a = b;
	b = temp;
}
void sort1(int arr[], int n)
{
	for (int i = 0; i < n - 1; i++)
		for (int j = i + 1; j < n; j++)
			if (arr[i] > arr[j])
				swap(arr[i], arr[j]);
}
void sort2(int arr[], int n)//冒泡排序
{
	int flag = 0;
	for (int i = 0; i < n - 1 && flag == 0; i++)
	{
		flag = 1;
		for (int j = 0; j < n - i - 1; j++)
			if (arr[j] > arr[j + 1])
			{
				swap(arr[j + 1], arr[j]);
				flag =0;
			}
	}
}
void sort3(int arr[], int n)//选择排序
{
	for (int i = 0; i < n; i++)
	{
		int min = i;
		for (int j = i + 1; j < n; j++)
		{
			if (arr[j] < arr[min])
				min = j;
		}
		if (arr[min] < arr[i])
			swap(arr[i], arr[min]);
	}
}
void sort4(int arr[], int n)//插入排序
{
	int j;
	for (int i = 1; i < n; i++)
	{
		if (arr[i] < arr[i - 1])
		{
			int temp = arr[i];
			for (j = i - 1; j >= 0 && arr[j] > temp; j--)
			{
				arr[j + 1] = arr[j];
			}
			arr[j + 1] = temp;
		}
	}
}
void sort5(int arr[], int n)//希尔排序
{
	int increase = n;
	do
	{
		increase = increase / 3 + 1;
		for (int i = 0; i < increase; i++)
		{
			for (int j = i + increase; j < n; j += increase)
			{
				if (arr[j] < arr[j - increase])
				{
					int k;
					int temp = arr[j];
					for (k = j - increase; k >= 0 && temp < arr[k]; k -= increase)
					{
						arr[k + increase] = arr[k];
					}
					arr[k + increase] = temp;
				}
			}
		}
	} while (increase > 1);
}
int selectsort(int arr[], int begin, int end)
{
	int i = begin, j = end;
	int temp = arr[begin];
	while (i < j)
	{
		while (i temp) j--;
		if (i < j) arr[i++] = arr[j];
		while (i < j && arr[i] < temp) i++;
		if (i < j) arr[j--] = arr[i];
	}
	arr[i] = temp;
	return i;
}
void sort6(int arr[], int begin,int end)//快速排序
{
	if (begin < end)
	{
		int tem = selectsort(arr, begin, end);
		if(tem>begin) sort6(arr, begin, tem - 1);
		if(tem 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/879508.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号