算法笔记
胡澳治
好好学习,不断进步
展开
-
快速排序(老师讲的另一种版本)
#include<stdio.h>void swap(int a[], int i, int j) { int tmp = a[i]; a[i] = a[j]; a[j] = tmp;}void qsort(int a[], int left, int right) { if (left >= right) return; swap(a, left, (left + right) / 2); int last = left; for (int i = left +原创 2020-12-04 10:57:18 · 77 阅读 · 0 评论 -
堆排序(小根堆)C语言实现
#include <stdio.h>void swap(int a[], int b, int c) { int tmp = a[b]; a[b] = a[c]; a[c] = tmp;}void heapify(int a[], int i, int n) { if (i >= n) return; int c1 = 2 * i + 1; int c2 = 2 * i + 2; int min = i; if (c1 < n && a[c1原创 2020-12-04 10:58:15 · 1160 阅读 · 0 评论 -
BST&AVL
//** 二叉搜索树BST的元素删除**struct node { int val; node* left; node* right;};node* findMax(node* root) { if (root == nullptr) return nullptr; while (root->right) { root = root->right; } return root;}node* findMin(node* root) { if (root == nu原创 2020-12-04 10:58:30 · 71 阅读 · 0 评论 -
快速排序C++代码嗯嗯
这里有B站上的快排干货视频,看完来看这个代码很容易#include <iostream>using namespace std;int getmid(int a[], int l, int r) { int left = l, right = r; int p = a[left]; while (left < right) { while (left < right && a[right] >= p) right--; a[left]原创 2020-12-04 10:58:41 · 207 阅读 · 0 评论 -
求最大公约数和最小公倍数的C语言代码
int gcd(int a, int b){ // 最大公约数 return !b ? a : gcd(b, a%b);}int lcm(int a, int b){ //最小公倍数 return a/gcd(a,b)*b;}原创 2020-12-04 10:59:21 · 357 阅读 · 0 评论