当前位置: 首页 > article >正文

3.14学习总结 排序算法

插入排序:

1.直接插入排序

维护一个有序区,把元素一个个插入有序区的适当位置,直到所有元素都有序为止。

for (int i = 0;i < n - 1;i++) {//升序
	int end = i;
	int temp = k[end + 1];
	while (end >= 0) {
		if (temp < k[end]) {
			k[end + 1] = k[end];
		}
		else {
			break;
		}
		end--;
	}
	k[end + 1] = temp;
}

2.折半插入排序  二分法查找插入位置

3.希尔排序

void shellsort(int* arr, int n) {
	int gap = n;
	while (gap > 1) {
		gap = gap / 2;
		for (int i = 0;i < n - gap;i++) {
			int end = i;
			int tem = arr[end + gap];
			while (end >= 0) {
				if (tem < arr[end]) {
					arr[end - gap] = arr[end];
					end -= gap;
				}
				else {
					break;
				}
			}
			arr[end + gap] = tem;
		}
	}
}

交换排序:

1.冒泡排序

for (int i = 0;i < n - 1;i++) {//从小到大排序
	for (int j = 0;j < n - 1 - i;j++) {
		if (a[j] > a[j + 1]) {
			t = a[j];
			a[j] = a[j + 1];
			a[j + 1] = t;
		}
	}
}

2.快速排序

int a[1000], n;//需要排序的数,以及总数
void quicksort(int left, int right) {
	int i, j, t, temp;
	if (left > right) {
		return;
	}
	temp = a[left];
	i = left;
	j = right;
	while (i != j) {
		while (a[j] >= temp && i < j) {
			j--;
		}
		while (a[i] <= temp && i < j) {
			i++;
		}
		if (i < j) {
			t = a[i];
			a[i] = a[j];
			a[j] = t;
		}
	}
	a[left] = a[i];
	a[i] = temp;
	quicksort(left, i + 1);
	quicksort(i + 1, right);
	return;
}

选择排序:

1.简单选择排序

2.树形选择排序

3.堆排序

归并排序:

基数排序:

1.多关键字排序

2.链式基数排序

外部排序:

1.外部排序的基本办法

2.多路平衡归并的实现

3.置换—选择排序

4.最佳归并树

(有代码的已学。

 


http://www.kler.cn/a/589639.html

相关文章:

  • 高精度加法,高精度乘法,高精度除法,高精度减法,链表相加
  • 如何仅在conda中更新gcc版本
  • 什么是数学建模?数学建模是将实际问题转化为数学问题
  • Linux服务器跑python脚本定时任务
  • AIP-181 稳定级别
  • fastapi+angular实现个人博客
  • 什么是死锁?如何避免死锁?
  • 【spring boot 实现图片验证码 前后端】
  • ESP32学习 -从STM32工程架构进阶到ESP32架构
  • MySQL 性能优化:索引优化 + 读写分离 + Redis 缓存,TPS 提升 175% 实战解析
  • 《Classifier-Free Diffusion Guidance》的核心观点与方法
  • 三层架构与MVC架构的本质:从设计思想到实战选择
  • 贝叶斯网络的基本概念并构建一个贝叶斯网络(实例)
  • QT 磁盘文件 教程04-创建目录、删除目录、遍历目录
  • IntelliJ IDEA 中 Maven 的 `pom.xml` 变灰带横线?一文详解解决方法
  • 微服务即时通信系统---(八)用户管理子服务
  • 2025交易所开发突围:AI增强型撮合引擎与零知识证明跨链架构
  • 有趣的算法实践:整数反转与回文检测(Java实现)
  • java学习总结(六)Spring IOC
  • 基于k3s部署Nginx、MySQL、Golang和Redis的详细教程