首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏乐行僧的博客

    8-快速排序算法

    一些关键点: 不稳定的排序算法 初始状态待排序序列基本有序,快速排序的时间复杂度为O(n^2),性能非常差 空间复杂度与递归树的高度成正比,平均来看是O(log2n) 划分函数的选择非常重要 优化,随机划分 QuickSort(a, l, p - 1); QuickSort(a, p + 1, r); } int main() { int a[] = {3, 1, 2, 4, 7, 0, 5, 8,

    28130编辑于 2022-02-25
  • 来自专栏算法工程师之路

    每日算法题:Day 8

    作者:TeddyZhang,公众号:算法工程师之路 Day 8, C/C++知识点走起~ 1 编程题 【剑指Offer】翻转链表 输入一个链表,反转链表后,输出新链表的表头。 nullptr; return newHead; } }; 如果不使用额外的空间的话,我们可以使用两个指针pre和next, 对链表相邻的两个节点进行交换调整,这才是面试官想要看到的算法

    51720发布于 2019-08-09
  • 来自专栏机器学习算法与Python学习

    8大排序算法图文讲解

    常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 本文将依次介绍下述八大排序算法算法一:插入排序 ?   算法二:希尔排序 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法算法三:选择排序 ‍ ? 选择排序示意图 选择排序(Selectionsort)也是一种简单直观的排序算法算法五:归并排序 ? 归并排序示意图 归并排序(Mergesort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(DivideandConquer)的一个非常典型的应用。 1 算法八:基数排序 基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。

    53020发布于 2019-05-15
  • 来自专栏性能与架构

    MySQL8 的 Hash join 算法

    以前 MySQL 的 join 算法只有 nested loop 这一种,在 MySQL8 中推出了一种新的算法 hash join,比 nested loop 更加高效。 小结 hash join 算法先选一个小表,放入内存的 hash table,然后扫描另一个表,与 hash table 匹配出结果数据。 参考资料: https://mysqlserverteam.com/hash-join-in-mysql-8/

    1.4K30发布于 2019-11-28
  • 来自专栏北京马哥教育

    8大排序算法图文讲解

    常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 本文将依次介绍上述八大排序算法算法一:插入排序 算法二:希尔排序 算法三:选择排序 算法四:冒泡排序 算法五:归并排序 算法六:快速排序 算法七:堆排序 算法八:基数排序 ---- 算法一:插入排序 ? ---- 算法二:希尔排序序 ? 希尔排序示意图 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 ---- 算法三:选择排序 ? 选择排序示意图 选择排序(Selection sort)也是一种简单直观的排序算法。 ---- 算法五:归并排序 ? 归并排序示意图 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法

    5.5K70发布于 2018-05-02
  • 来自专栏学习

    【优选算法8----四数之和

    有看过我上篇算法博客并且去做过的铁子们,对这道题的话应该就不会那么陌生了,因为这两道题 的解题思路有着异曲同工之妙~ -----------------------------------------begin ------------------------------------- 题目解析: 跟三数之和就多了一数,看过的铁子还是很容易理解的~ 讲解算法原理: 同三数之和一样,暴力算法肯定不得行的~ 所以就直接在暴力算法的基础上 ,我们借助在三数之和的算法原理来多加一层循环,便解决这道四 数之和啦~ 编写代码: class Solution { public: vector<vector<int>> fourSum(vector

    10400编辑于 2025-01-24
  • 来自专栏轮子工厂

    快速搞定8大排序算法

    算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。 算法适用于少量数据的排序,是稳定的排序方法。 (算法见代码)将两部分算法合并到一起。 因此可以看出,归并排序算法比较占用内存,但却是效率高且稳定的排序算法。 不是稳定的排序算法

    52520发布于 2018-08-10
  • 来自专栏Unity3D

    ☆打卡算法☆LeetCode 8、字符串转换整数 算法解析

    一、题目 1、算法题目 “将给定的字符串中的数字提取出来。” 函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 但是最好还是使用算法去解决这道题,比如使用状态机去解决字符串的不同状态下的处理问题。

    58320编辑于 2022-08-07
  • 来自专栏后端精进之路

    算法基础之8大排序算法最优解-必读

    算法是面试考察的重点,基础算法更是基础,只有打好了基础才可能在此之上深入学习。这里总结了最常见的排序算法,每个都进行了详细分析,大家可以好好研究吸收。 但希尔排序是非稳定排序算法。 所以shell排序是不稳定的排序算法算法过程分为两个步骤: 第一步,以线性时间建立一个Max堆,时间花费O(N); 第二步,通过将堆中的最后一个元素与第一个元素交换,缩减堆的大小并进行下滤,来执行N-1次DeleteMax操作,当算法终止时 关于稳定性: 稳定的排序算法:冒泡排序、插入排序、归并排序和基数排序 不是稳定的排序算法:选择排序、快速排序、希尔排序、堆排序

    84530编辑于 2023-10-19
  • 来自专栏高并发

    算法学习之8皇后问题

     8皇后问题是高斯提出来的一个问题,在一个8*8棋盘上,8个棋子不在同一行同一列,和同一个对角线上的摆放方式有几种,我们一般才有回溯加剪枝的方法求解。回溯剪枝法也是很多公司笔试题中简单题经常考的。 include <cstdio> #include <vector> #include <cstring> #include <cmath> using namespace std; int arry[8] [8]; //打印数组用的 int t = 0; //计算总共次数 void search_answer(unsigned char flag[],int n) { if(n == 8) ; memset(arry,0,sizeof(arry)); t++; } else { for(int i = 0; i < 8; search_answer(flag,n+1); } } } } } int main() { unsigned char flag[8]

    39910编辑于 2022-06-23
  • 来自专栏C/C++学习

    【优选算法题练习】day8

    ma.count(t)) ret += ma[t]; ma[sum]++; } return ret; } }; 4.运行结果 总结 今天是算法练习的第 8天。

    34320编辑于 2023-10-15
  • 来自专栏全栈程序员必看

    nginx负载均衡算法8种_权重负载均衡算法实现

    下面是6种负载均衡算法: 1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动删除。 fair(第三方) 可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配,Nginx本身默认是不支持fair的,如果需要使用这种调度算法 url_hash(第三方)   按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率,Nginx本身默认是不支持url_hash的,如果需要这种高度算法 例如: 在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法 upstream backend { server

    1.9K20编辑于 2022-11-08
  • 来自专栏趣学算法

    数据结构 第8讲 KMP算法

    数据结构第8讲 KMP算法 讲这个算法之前,我们首先了解几个概念: 串:又称字符串,是由零个或多个字符组成的有限序列。 上述算法称为BF(Brute Force)算法,Brute Force的意思是蛮力,暴力穷举。其时间复杂度最坏达到O(n*m),n,m分别为S、T串的长度。 实际上,完全没必要从S的每一个字符开始,暴力穷举每一种情况,Knuth、Morris和Pratt对该算法进行了改进,称为KMP算法。 我们再回头看刚才的例子: 从S串第1个字符开始:i=1,j=1,比较两个字符是否相等,如果相等,则i++,j++;按照BP算法,如果不等则i退回到i-j+2的位置,即i=2,j=1。 ? 进入循环,判断满足T[j]==T[k],T[5]=T[2],则执行next[++j]=++k,即next[6]=3,此时j=6,k=3;       8. j=T[0],循环结束。

    66420发布于 2018-09-13
  • 来自专栏AI那点小事

    算法提高 8-1因式分解

    问题描述   设计算法,用户输入合数,程序输出若个素数的乘积。例如,输入6,输出2*3。输入20,输出2*2*5。 样例   与上面的样例输入对应的输出。   例: ?

    47010发布于 2020-04-20
  • 来自专栏深度学习|机器学习|歌声合成|语音合成

    8节:EM算法及numpy复现

    文章目录 EM期望极大算法(expectation maximization algorithm) numpy复现 EM期望极大算法(expectation maximization algorithm EM算法的每 次迭代由两步组成: E步,求期望(expectation); M步,求极大(maximization). 在统计学中似然和概率却是两个不同的概念。 numpy复现 # -*- coding:utf-8 -*- # /usr/bin/python import numpy as np import math class EM: def

    52620编辑于 2021-12-24
  • 来自专栏PPV课数据科学社区

    【学习】8大排序算法图文讲解

    常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 本文将依次介绍下述八大排序算法算法二:希尔排序 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法算法三:选择排序 选择排序示意图 选择排序(Selectionsort)也是一种简单直观的排序算法算法五:归并排序 归并排序示意图   归并排序(Mergesort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(DivideandConquer)的一个非常典型的应用。    霍尔所发展的一种排序算法

    99460发布于 2018-04-19
  • 8个超级经典的聚类算法

    公众号:尤而小屋作者:Peter编辑:Peter大家好,我是Peter~本文主要介绍8个常见聚类算法和基本原理:K-Means聚类层次聚类DBSCAN聚类均值漂移聚类谱聚类模糊聚类Fuzzy Clustering make_blobs import matplotlib.pyplot as plt # 生成一个随机数据集 X, y = make_blobs(n_samples=1000, centers=8, make_blobs import matplotlib.pyplot as plt # 生成一个随机数据集 X, y = make_blobs(n_samples=1000, centers=8, make_blobs import matplotlib.pyplot as plt # 生成一个随机数据集 X, y = make_blobs(n_samples=1000, centers=8, random_state=42) # 创建谱聚类器 spectral = SpectralClustering(n_clusters=8, affinity='nearest_neighbors

    6K10编辑于 2024-06-21
  • 来自专栏xiaosen

    数据结构算法--8基数排序

    得到:32,52,13,93,94,54,17     *现在个位数的相对位置排好序了*

    20910编辑于 2024-03-15
  • 来自专栏ACM算法日常

    基础算法 | 最终章-8 归并排序

    我们已经在本系列文章中已经学习了7种算法,其中一种是查找算法,六种是排序算法。本篇文章是基础算法系列的最后一章,我们将学习最后一个排序算法——归并排序。 让我们话不多说,开始学习吧~ ---- 归并排序 归并排序是一种效率较高的排序,它用到了我们算法设计方法里面的分治算法(在后面的新主题文章会讲述),在处理大量排序数据时,归并排序的效率比我们之前所学的冒泡排序 ,直接插入排序等算法要快很多。 所以我们可以在算法中预先定义一个temp数组,让每次合并的时候都共享这个数组。 它用到了我们算法设计方法里面的分治算法(将在新主题文章中讲述,敬请期待~)。你是否get到了呢~ヾ(◍°∇°◍)ノ゙

    62010发布于 2018-12-06
  • 来自专栏Python数据结构与算法

    数据结构与算法-(8)---队列(Queue)

    队列(Queue):是一种有次序的数据集合,其特征是新数据项的添加总发生在一端 (通常称为“尾rear”端)

    36810编辑于 2024-01-18
领券