C++实现排序算法

冒泡算法

将元素进行两两比较,将大的元素往后移动

平均时间复杂度是O(n^2),最坏时间复杂度是O(n^2),最好时间复杂度是O(n),排序结果具有稳定性。

这里所提到的稳定性主要是针对相同元素而言的,比如5,5,3进行冒泡排序,第一个5始终在第二个5的前面,这两个5的顺序不会发生变化。

void bubblesort(int arr[], int n)
{
	for (int i = 0; i < n - 1; i++)
	{
		bool finished = true;
		for (int j = 0; j < n - 1-i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				swap(arr[j], arr[j + 1]);
				finished = false;
			}
		}
		if (finished)return;//如果finished为true就代表没有元素发生交换,也就是说所有元素都已经有序了
	}
}

选择排序算法

 假设队首元素为最小值,然后遍历后续的元素找到真正的最小值,并与队首进行交换,每次在剩余元素中选择最小的元素与当前元素进行交换。

平均时间复杂度是O(n^2),最好时间复杂度是O(n^2),最坏时间复杂度是O(n^2),排序结果不稳定。

假如有一个5,5,3的序列,那么当使用选择排序进行排序时,第一个5就和最后的一个3进行交换了,但实际上第一个5是在第二个5的前面的,但是排完序后,第一个5到第二个5后面去了,所以是不稳定的。

void choicesort(int arr[], int n)
{

	for (int i = 0; i < n; i++)
	{
		int min_element = arr[i];
		int min_index = i;
		for (int j = i; j < n; j++)
		{
			if (arr[j] < min_element)
			{
				min_element = arr[j];
				min_index = j;
			}
		}
		swap(arr[i], arr[min_index]);
	}
}

相关推荐

  1. C++实现排序算法

    2024-07-23 05:46:05       23 阅读
  2. C语言实现选择排序算法

    2024-07-23 05:46:05       45 阅读
  3. C语言实现快速排序算法

    2024-07-23 05:46:05       28 阅读
  4. C语言】归并排序算法实现

    2024-07-23 05:46:05       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-23 05:46:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-23 05:46:05       102 阅读
  3. 在Django里面运行非项目文件

    2024-07-23 05:46:05       83 阅读
  4. Python语言-面向对象

    2024-07-23 05:46:05       92 阅读

热门阅读

  1. 微信小程序面试题汇总

    2024-07-23 05:46:05       20 阅读
  2. Ubuntu22.04重置root密码

    2024-07-23 05:46:05       22 阅读
  3. 手写简易版Spring IOC容器05【学习】

    2024-07-23 05:46:05       23 阅读
  4. 速盾:cdn技术实现原理是什么?

    2024-07-23 05:46:05       25 阅读
  5. Windows通过命令查看mac : getmac

    2024-07-23 05:46:05       23 阅读
  6. CentOS搭建 Mono 开发环境

    2024-07-23 05:46:05       26 阅读
  7. MVC(Model-View-Controller)架构简介

    2024-07-23 05:46:05       22 阅读
  8. 科普文:重读并翻译分布式计算经典文论-MapReduce

    2024-07-23 05:46:05       17 阅读
  9. Apache Commons技术详解

    2024-07-23 05:46:05       25 阅读
  10. mqtt.fx 下载 安装 配置

    2024-07-23 05:46:05       24 阅读