常见排序算法
奈心中事,眼中泪,意中人。
Missヾaurora
想将岁月凝结成诗,却没想过,有一天,这诗也会渐渐老去,以致后来,无人问津。
展开
-
chapter §30 堆排序
思想堆:对于含n个关键字的序列L[1,……,n],将其视为一棵完全二叉树,根结点i对应左右孩子分别为2i和2i+1,当根结点关键字L[i]大于等于左右子树的关键字时称为大根堆,当根结点小于等于左右子树关键字时,称为小根堆。堆排序:将堆顶元素和堆底元素交换,重新调整成堆,重复进行,直到堆中只有一个元素。#include <iostream>using namespace std;const int MAX = 50;int Heap[MAX] = {0, 32, 66, 64,原创 2021-06-20 15:19:09 · 122 阅读 · 0 评论 -
chapter §29 归并排序
思想将初始长度为n序列,一分为二,对得到的左边子序列继续二分,依次类推。直到最后左边的子序列划分所得两个子序列各包含一个元素,然后再将其两两归并,得到一个有序的子序列,然后再按照同样的策略继续划分右边的子序列,然后归并……直到最终归并为长度为n的有序子序列。#include <iostream>using namespace std;const int MAX = 100;void Merge(int a[], int left, int mid, int right) { /原创 2021-06-19 20:01:06 · 98 阅读 · 0 评论 -
chapter §28 简单选择排序
思想从当前待排元素中选择出最小的一个,如果序号和当前待排元素的下标一致,则直接进入下一轮选择,否则与待排部分第一个元素进行交换,共进行n-1趟。#include <iostream>using namespace std;void SelectSort(int *a,int n) { for (int i = 0; i < n-1; ++i) { //n-1趟排序 int index = i; for (int j = i + 1原创 2021-06-18 15:54:19 · 112 阅读 · 0 评论 -
chapter §27 快速排序
思想快速排序基于分治的思想,从当前待排序列中选取一个基准,也称为枢轴(通常取序列的第一个元素),将该基准元素放入其最终位置后,将序列一分为二,使得该基准以前的所有元素构成的子序列均小于等于基准元素,基准以后的所有元素构成的子序列均大于等于基准元素,这个过程称为一次划分。然后对划分所得的两个子序列再进行如上操作,直到每一个子序列内只剩下一个元素或者为空时停止。#include <iostream>using namespace std;const int LENGTH = 10;原创 2021-06-17 15:07:56 · 92 阅读 · 0 评论 -
chapter §26 冒泡排序
冒泡排序冒泡排序是众多排序算法中较为简单的一类,其核心在于交换,每次从前往后或者从后往前相邻元素进行比较,如果为逆序,则进行交换。因此对于n个元素,每一趟可将当前剩余元素中的最大值或最小值放到确定的位置。共进行n-1趟。可设置一个标志flag进行优化。#include <iostream>using namespace std;void BubbleSort(int *a) { for (int i = 1; i < 10; ++i) { //共进行n-1趟排序原创 2021-06-16 15:20:28 · 106 阅读 · 0 评论 -
chapter §25 希尔排序
核心思想以d为增量序列,将原始序列划分成多个子表,各个子表内部使用直接插入排序;然后再逐步减小d(一般可除以2),重复以上过程,直到d小于等于0。void shellSort(int a[], int n) {//对a[1]~a[n]进行排序 int d, i, j; for (d = n / 2; d >= 1; d /= 2) {//d依次除以2 for (i = d + 1; i <= n; ++i) { if (a[i] &原创 2021-06-15 18:32:51 · 122 阅读 · 0 评论 -
chapter §24 插入排序
一、直接插入排序将待排序部分插入到前面已经有序的数列中,假设当前待排元素下标为i,则从第i-1个位置依次向前进行比较,若该元素大于当前待排元素,则将其后移一个位置,继续向前比较,直到比较到某一个元素小于待排元素或下标为0的元素为止。#include <iostream>using namespace std;void InsertSort(int *a) { for (int i = 1; i < 10; ++i) {//共进行n-1趟 int te原创 2021-06-09 19:09:54 · 104 阅读 · 0 评论