冒泡排序

希尔排序整理

算法原理 代码实现 1 public static void sort(int[] array){ 2 //数据间隔h 8>4>2>1 3 int h = array.length / 2; 4 while(h >= 1){ 5 for (int start = 0; start < h; star ......

python中依据字典的键对字典进行排序

001、依据字典的键进行排序 a、正向排序 >>> dict1 = {"c":30, "a":40, "b":80, "d":20, "e":60} >>> dict1 {'c': 30, 'a': 40, 'b': 80, 'd': 20, 'e': 60} >>> for i in sorted ......
字典 python

数组二分查找:35. 搜索插入位置、34. 在排序数组中查找元素的第一个和最后一个位置

35. 搜索插入位置 1 class Solution: 2 def searchInsert(self, nums: List[int], target: int) -> int: 3 left, right = 0, len(nums)-1 4 5 while left <= right: #左 ......
数组 位置 元素 35 34

冒泡排序

**冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,比较相邻的元素,并根据需要交换它们的位置,直到整个列表排序完成为止。** 具体步骤如下: * 从列表的第一个元素开始,比较它与下一个元素的大小。 * 如果当前元素较大,则交换它与下一个元素的位置。 * 继续向列表的下一个元素进行比较,重复上 ......

插入排序之希尔排序

1 void shell_sort() 2 { 3 unsigned char i=0,j=0,gap; 4 unsigned char arr[10] = {4,1,3,9,6,2,8,5,0,7}; 5 unsigned char len = sizeof(arr); 6 unsigned ch ......

简单排序之选择排序

1 void select_sort() 2 { 3 int i,j,k; 4 unsigned char array[10] = {4,1,3,9,6,2,8,5,0,7}; 5 unsigned char len = sizeof(array); 6 unsigned char temp; 7 ......

插入排序之直接插入排序

1 void insert_sort() 2 { 3 int i,j; 4 unsigned char array[10] = {4,1,3,9,6,2,8,5,0,7}; 5 unsigned char len = sizeof(array); 6 7 /*遍历所有无序序列*/ 8 for(i = ......

递归排序之快速排序(挖坑法)

1 #include <stdio.h> 2 3 4 unsigned char standard(unsigned char* array,unsigned char low, unsigned char high) 5 { 6 unsigned char key = array[low]; 7 ......

堆排序

堆是以二叉树为结构组成的一个序列,一般以数组进行实现,如设 N = 1 为根节点,则左节点 `2*N`,右节点 `2*N+1`,以此构建一整个堆。 ## 堆结构体的数据结构 ```c typedef int Item; typedef struct maxHeap { Item* data; // ......

基础排序

## 选择排序 ```c 指针表示法 void choose_sort(int* arr, int n) { for (int i = 0; i 0;i--){ for(int j=0;j arr[j+1]){ swap(arr,j,j+1); } } } } ``` ## 模板(泛型) ```cp ......
基础

【校招VIP】前端算法考察之排序

考点介绍: 不同的场景中,不同的排序算法执行效率不同。 稳定:冒泡、插入、归并 不稳定:选择、快速、堆排序、希尔排序 一、考点题目 1、使用js实现数组的快速排序 解答:快速排序使用了冒泡+分治的思路。 每轮从数组中取出一个数作为基准;在排序过程中,小于或等于基准数的全部放到基准的左边,大于基准的全 ......
前端 算法 VIP

剑指Offer 25. 合并两个排序的链表

**题目链接:** [剑指Offer 25. 合并两个排序的链表](https://leetcode.cn/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof/?envType=study-plan-v2&envId=coding-interview ......
两个 Offer 25

【题解】 P7077 [CSP-S2020] 函数调用(拓扑排序)

## 题意 题目给定了一个长度为$n$序列$a$与$m$个操作,操作一共有3种: 1.给定$x,y$,使$a_x$增加$y$。 2.给定$x$,使$a$中所有数全部乘上$x$。 3.给出k个数$c_1,c_2,...,c_k$,表示这个操作的任务是按照先后顺序执行编号为$c_1,c_2,...,c_ ......
题解 拓扑 函数 P7077 CSP-S

LeetCode —— 排序

148. 排序链表 一般都用归并排序,因为是单向链表,其它排序算法根据下标找元素,向前遍历等都比较困难 主函数流程是: 如果 head==null || head.next==null return head。因为 head.next == null 即只有一个元素时,不用再划分了,而且一个元素本身 ......
LeetCode

排序算法

## 排序 ### 插入排序 #### 直接插入排序 ```c++ //直接插入排序 void InsertSort(int A[], int n) { int i, j, temp; for (i = 1; i = 0 && A[j] > temp; j--) { //检查所有前面已拍好序的元素 ......
算法

后缀排序学习笔记

[传送门](https://www.luogu.com.cn/problem/P3809) 定义$sa_i$表示**排名为 $i$ 的后缀编号是什么。** 例:$ababa$ $sa_1=5,sa_2=3,sa_3=1,sa_4=4,sa_5=2$ 思路理解: 先根据第一位排序,确定最初的$sa$ ......
后缀 笔记

P2824 排序(二分答案加线段树)

[传送门](https://www.luogu.com.cn/problem/P2824) 很巧妙的一个题 直接排序肯定会$T$飞 我们发现问题只有一个:第$q$个位置上的数字 不难想到从这里入手,二分答案,考虑第$q$个位置上的数字是什么,不妨设他为$x$ 然后把大于等于$x$的数变成$1$,小于 ......
线段 答案 P2824 2824

P4017 最大食物链计数 (DAG拓扑排序)

[空降锣鼓](https://www.luogu.com.cn/problem/P4017 "空降锣鼓") # 1 题目分析 首先 ,要知道这道题是 Topo 拓扑排序。不妨先从拓扑排序定义下手,分析题目的性质。经分析得: 食物链中的生物 —— **节点** 生物之间的关系 —— **有向边** 为 ......
食物链 拓扑 食物 P4017 4017

P1113 杂务 (DAG拓扑排序--DP)

# 这是一道拓扑排序的模板题 ### 0 额. #### 所需的前置知识: - 图论相关的基本概念 - 建图,存图 - 图的遍历 - 非常入门的DP 下面进入正文 #### 1 引入 拓扑排序是一类用于处理 DAG(Directed acyclic graph),即**有向无环图**上的问题。 以这 ......
杂务 拓扑 P1113 1113 DAG

关于排序

### update 2.16 一个晚自修的想法 对一个序列$a$进行排序 如:$a$为$2$ $7$ $8$ $1$ $5$ $4$ 计算其“上坡”(上升序列),记录每个“上坡”的起始位置 如:$(2$ $7$ $8)$ $(1$ $5)$ $(4)$ 记录起始位置为: $up[1]=1,up[2 ......

交换排序:冒泡排序和快速排序的实现

## 冒泡排序 **冒泡排序的定义**:冒泡排序(Bubble Sort)是一种最简单的交换排序方法,它通过两两比较相邻记录的关键字,如果发生逆序,则进行交换,从而使关键字小的记录如气泡一般逐渐往上 “漂浮”(左移), 或者说使关键字大的记录如石块一样逐渐向下 “坠落”(右移)。 **冒泡排序的代码 ......

Leetcode1636——按照频率将数组升序排序

给你一个整数数组 nums ,请你将数组按照每个值的频率 升序 排序。如果有多个值的频率相同,请你按照数值本身将它们 降序 排序。 请你返回排序后的数组。 示例 1: 输入:nums = [1,1,2,2,2,3] 输出:[3,1,1,2,2,2] 解释:'3' 频率为 1,'1' 频率为 2,'2 ......
升序 数组 频率 Leetcode 1636

DQL-排序查询

年龄相同按日期降序排序 ......
DQL

反序列的字典序排序最大

Smiling & Weeping 我生活在自己的光里面,不断啜饮内心的火焰 题目链接:https://www.luogu.com.cn/problem/solution/P3243 题目: # [HNOI2015] 菜肴制作 ## 题目描述 知名美食家小 A 被邀请至 ATM 大酒店,为其品评菜肴 ......
序列 字典

拓扑排序学习笔记

## 思想 拓扑,一看就是从图的开始开始开拓,并按被开拓到的顺序排序 拓扑排序的思想如下: > 将入度为 $0$ 的点删除,并记录它被删除的顺序,直到没有点则结束程序 ## 图解 ![image](https://img2023.cnblogs.com/blog/3079030/202308/307 ......
拓扑 笔记

执行排序

排序方式 方法排序 类排序 Suite 方法排序的类型 类型说明 OrderAnnotation(重点) @Order 注解指定排序 DisplayName 根据显示名称排序 Random 随机排序 MethodName 根据方法名称排序 import org.junit.jupiter.api.M ......

插入排序

插入排序是一种简单的排序算法,它的基本思想是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 插入排序的步骤如下: 从第一个元素开始,该元素可以认为已经被排序; 取出下一个元素,在已经排序的元素序列中从后向前扫描; 如果该元素(已排序)大于新元素,将该元素移到下一位 ......

DAY003_选择排序、冒泡排序、插入排序

# 选择排序 第一遍遍历:从头开始,找到最小值的坐标,将最小值和数组第一个元素对调 第二遍遍历:从第二个元素开始,找到最小值的坐标,将最小值和数组第二个元素对调 第三遍遍历:从第三个元素开始,找到最小值的坐标,将最小值和数组第三个元素对调 .... # 冒泡排序 第一遍遍历:只要前数比后数大就交换, ......
DAY 003

力扣-根据字符出现频率排序

1.问题描述 给定一个字符串,请将字符串里的字符按照出现的频率降序排列,如果频率相同,则按照字符的ASCII码升序排列。 示例 1: 输入: "tree" 输出: "eert" 解释: 'e'出现两次,'r'和't'都只出现一次。 因此'e'必须出现在'r'和't'之前,而且'r'比't'的ASCI ......
字符 频率

C#插入排序算法

插入排序实现原理 插入排序算法是一种简单、直观的排序算法,其原理是将一个待排序的元素逐个地插入到已经排好序的部分中。 具体实现步骤如下 首先咱们假设数组长度为n,从第二个元素开始,将当前元素存储在临时变量temp中。 从当前元素的前一个位置开始向前遍历,比较temp与每个已排序元素的值大小。 如果已 ......
算法