算法&数据结构学习(1)十大排序算法实现

作为一个非计算机专业的学生,有志要从事软件编程,记录自己的学习收获!!!
在这里插入图片描述

SortAlgorithm.h文件
各种算法的统一声明以及相关辅助函数的声明。

#pragma once
#ifndef SORTALGORITHM_H
#define SORTALGORITHM_H

#include<vector>
#include<list>
using namespace std;

	//1、冒泡排序的公共接口
	void bubblesort(vector<int>&);
	//2、选择排序的公共接口
	void selectionsort(vector<int>&);
	//3、插入排序的公共接口
	void insertionsort(vector<int>&);
	//4、希尔排序的公共接口
	void shellsort(vector<int>&);
	//5、归并排序的公共接口
	void mergesort(vector<int>&);
	//6、快速排序的公共接口
	void quicksort(vector<int>&);
	//7、堆排序排序的公共接口
	void heapsort(vector<int>&);
	//8、计数排序的公共接口
	void countsort(vector<int>&);
	//9、桶排序排序的公共接口
	void bucketsort(vector<int>&);
	//10、基数排序的公共接口
	void radixsort(vector<int>&);
	
	//各种排序算法中需要用到的私有辅助函数
	void choosepivot(vector<int>&, int, int);
	void _Mergesort(vector<int>&, int, int);
	void _Quicksort(vector<int>&, int, int);
	void merge(vector<int>&, int, int, int);
	int partition(vector<int>&, int, int);
	void exchange(vector<int>&, size_t, size_t);
	void sink(vector<int>&, int, int);
	void insert_bucket(list<int>&, int);



#endif // !SORTALGORITHM

SortAlgorithm.cpp文件
排序算法以及辅助函数的定义文件

#include "SortAlgorithm.h"

//各辅助函数定义
//辅助交换函数
void exchange(vector<int>& vec, size_t m, size_t n)
{
   
	int tmp = vec[m];
	vec[m] = vec[n];
	vec[n] = tmp;
}

//辅助归并操作
void merge(vector<int>& vec, vector<int>& tmp, int lo, int mid, int hi)
{
   
	int i = lo, j = mid + 1;
	//tmp数组前半部分序列
	for (int k = lo; k <= hi; ++k)//拷贝元素组
		tmp[k] = vec[k];
	for (int k = lo; k <= hi; ++k)
		if (i > mid) 
			vec[k] = tmp[j++];
		else if (j > hi) 
			vec[k] = tmp[i++];
		else if (tmp[j] < tmp[i]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值