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

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.最佳归并树

(有代码的已学。

 

相关文章:

  • 使用 VLOOKUP 和条件格式在 Excel 中查找并标红匹配的串号
  • 编程自学指南:java程序设计开发,网络编程基础,TCP编程,UDP编程,HTTP客户端开发
  • 扫描电子显微镜有何特点和用途?
  • Hello Mr. My Yesterday日文歌词附假名注音,祭奠逝去的青春
  • Spring 中 BeanFactoryPostProcessor 的作用和示例
  • Qt开发:QtWebEngine中操作选择文本
  • 【QT】文件系统相关 -- QFile
  • 上位机使用QtCharts绘图
  • linux 命令 tail
  • numpy.random 用法
  • 软文推广发布渠道有哪些适合作为首发平台?首发平台有哪些好处?
  • 200多种算法应用于二维和三维无线传感器网络(WSN)覆盖场景
  • Tomcat Session 反序列化漏洞(CVE-2025-24813)
  • ubuntu24.04执行nvidia-smi报错,实际生产报错,处理过程
  • Mybatis 框架学习
  • Android Composable 与 View 的联系和区别
  • 【xv6操作系统】页表与写时拷贝解析及相关实验设计
  • 简单说一说ADSP-BF537的开发
  • 前端无限滚动内容自动回收技术详解:原理、实现与优化
  • 健康医疗:动态代理 IP 保障医疗数据安全,提升远程医疗服务质量!
  • 俄罗斯哈巴罗夫斯克市首次举办“俄中论坛”
  • MiniMax发布新一代语音大模型
  • 左手免费午餐右手花开岭,邓飞14年公益之路的中国贡献
  • 人民日报大家谈:为基层减负,治在根子上减到点子上
  • “马上涨价”再到“吞下关税”,美政策让沃尔玛“输两次”
  • 从良渚到三星堆:一江水串起了5000年的文明对话