数据结构——排序(期末总结)

1. 插入排序

1.1 直接插入排序

思想

假设第一个元素是已经排好序的元素,从第二个元素开始依次插入操作,大的放后面,小的放前面。

代码

cpp 复制代码
void insert(int a[], int n)
{
    int i, j, key;
    for (i = 2; i < n; i++)
    {
        key = a[i];
        j = i - 1;
        while (j >= 0 && a[j] < key)
        {
            a[j + 1] = a[j];
            j--;
        }
        a[j + 1] = key;
    }
}

1.2 希尔排序

思想

按等差数列就行进行排序,对间隔d的几个元素,进行直接插入排序后,再对部分排序好的再次进行排序

2. 交换排序

2.1 冒泡排序

思想

从后往前依次比较两个元素的值,如果后面的元素比前面的元素小,则交换位置,否则不变,一趟排序下来会让第一个元素是所有元素中最小的元素

2.2 快速排序

是所有排序中,平均性能最优的算法

不适用于已经有部分排好序的序列

思想

在序列中选取第一个元素作为比较值,并将第一个位置空出,给定首尾两个指针,先将尾指针所指向的数值与比较值进行比较,如果小于比较值,则将次数值放入空着的第一个元素的位置,并将尾指针向前移动;此时,在将头指针所指向的元素与比较值进行比较,如果大于比较值,则将此数值放入刚刚空出的尾部,以此类推。第一轮结束后,所有元素被分为两组,在分别对两组进行快速排序,直至全部排序。

3. 选择排序

3.1 简单选择排序

思想

假设总共有n个元素,第一趟排序是指从第一个元素开始,从此元素到最后一个元素找出最小的元素来和次元素进行交换,其余元素保持不变。第二趟排序就是从第二元素开始找最小的元素并交换,以此类推直至全部完毕。

代码

cpp 复制代码
void simplesort(int a[], int n)
{
    int i, j, min, temp;
    for (i = 0; i < n - 1; i++)
    {
        min = i;
        for (j = i + 1; j < n; j++)
        {
            if (a[j] < a[j + 1])
            {
                min = j;
            }
        }
        temp = a[i];
        a[i] = a[min];
        a[min] = temp;
    }
}

3.2 堆排序

思想

最小堆,最大堆

4.归并排序

归并:那两个有序表组成一个新的有序表

思想

5. 基数排序

不基于比较和移动,而是根据所给的全部元素的位进行排序

思想

先对所有元素的个位进行排序,从而形成一个新数列,再对新数列的十位进行排序,依次进行

分配和收集

6.各种排序的比较

相关推荐
飞Link2 分钟前
终结序列建模:Transformer 架构深度解析与实战指南
人工智能·python·深度学习·算法·transformer
We་ct2 分钟前
LeetCode 211. 添加与搜索单词 - 数据结构设计:字典树+DFS解法详解
开发语言·前端·数据结构·算法·leetcode·typescript·深度优先
一叶落4383 分钟前
LeetCode 202. 快乐数(C语言详解 | 三种解法 | 哈希表 + 快慢指针)
c语言·数据结构·算法·leetcode·散列表
吃着火锅x唱着歌5 分钟前
LeetCode 1190.反转每对括号间的子串
算法·leetcode·职场和发展
再难也得平8 分钟前
力扣238. 除自身以外数组的乘积(Java解法)
python·算法·leetcode
Mikowoo00712 分钟前
CPU_多线程操作图片_代码详解
算法
0 0 012 分钟前
CCF-CSP 38-2 机器人复健指南(jump)【C++】考点:BFS/DFS
开发语言·c++·算法·深度优先·宽度优先
小O的算法实验室13 分钟前
2025年IEEE TSMCS SCI1区TOP,面向异构多点动态聚合的多阶段粒子群算法,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
xiaoye-duck14 分钟前
《算法题讲解指南:优选算法-前缀和》--29.和为k的子数组,30.和可被k整除的子数组
c++·算法
Z9fish15 分钟前
sse 哈工大 C 语言编程练习 39
c语言·数据结构·算法