C++算法题

C++算法题,第1张

每天进步一点点

文章目录
  • *(一)从各类排序算法开始(左小右大)*
  • 一、冒泡排序
  • 二、选择排序
  • 三、插入排序


(一)从各类排序算法开始(左小右大)

一点点添加,不同的排序实现方法,之后会逐渐进行不同代码的补充,欢迎大家一起讨论。


一、冒泡排序

冒泡排序是逐步对两个相邻位置进行数值上的比较。
如果比较结果满足要求,则位置不动;否则交换顺序。
经过第一遍遍历,最大值会跑到最后一个值,第二遍在前(length-1)的数组长度上继续遍历。

#include 
using namespace std;

void bubble_sort(int arr[], int length) {
	for (int i = 0; i < length; i++) {
		for (int j = 0; j < length - i - 1; j++) {
			if (arr[j] > arr[j+1]) {
				int tmp = arr[j+1];
				arr[j+1] = arr[j];
				arr[j] = tmp;
			}
		}
	}
	for (int i = 0; i < length; i++) {
		cout << arr[i] << "  ";
	}
	cout << endl;
}

int main() {
	int arr[] = { 32, 6, 2, 4, 3, 7, 100 };
	int len = 7;
	bubble_sort(arr, len);
	return 0;
}



时间计算复杂度O(n2)


二、选择排序

选择排序是在固定长度序列中找最小值放到首位。
每次放到首位的就不要再去管它,只管后面未排好序的序列。
核心在于找最小值的部分。

#include 
using namespace std;

void selection_sort(int arr[], int length) {
	for (int i = 0; i < length; i++) {
		for (int j = i + 1; j < length; j++) {
			if (arr[i] > arr[j]) {
				int tmp = arr[j];
				arr[j] = arr[i];
				arr[i] = tmp;
			}	
		}
	}
	for (int i = 0; i < length; i++) {
		cout << arr[i] << "  ";
	}
	cout << endl;
}

int main() {
	int arr[] = { 32, 6, 2, 4, 3, 7, 100 };
	int len = 7;
	selection_sort(arr, len);
	return 0;
}

时间计算复杂度O(n2)


三、插入排序

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1354255.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-14
下一篇2022-06-14

发表评论

登录后才能评论

评论列表(0条)

    保存