
算法
文章平均质量分 53
modi134
这个作者很懒,什么都没留下…
展开
-
基数排序(Java算法)
基数排序核心思想是:基数排序是桶排序的扩展。将整数按位数切割成不同的数字,然后按每个位数分别比较排序。具体的,将数组每个数据统一为相等长度的数(短的前面补零);然后从低位开始,依次按位排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。本文主要参考 https://www.cnblogs.com/skywang12345/p/3603669.html。原创 2023-05-10 16:31:51 · 235 阅读 · 0 评论 -
桶排序(Java代码)
如下图所示:在待排序数组nums中3出现三次,则桶数组ints下标为3的位置等于3(即ints[3] = 3);又比如待排序数组中没得6,则ints[6] = 0。经过桶数组计数后,桶数组结果ints = {0,1,0,3,2,0,0,2,1,1}。桶排序核心思想就是:定义一个容量为待排序数中最大值+1的桶(也就是一个数组),并将桶数组的每一个值初始化为0;再遍历待排序数组,将不同的数用桶数组进行计数(计数规则是:待排序数组中的数等于桶数组下标,则该桶数组下标对应数+1);再遍历桶数组进行排序。原创 2023-05-09 16:52:55 · 325 阅读 · 0 评论 -
希尔排序(Java代码)
简介:百度说:希尔排序(Shell’s Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因 D.L.Shell 于 1959 年提出而得名。原创 2023-05-09 13:29:30 · 179 阅读 · 0 评论 -
归并排序(Java代码)
归并排序核心思想就是:将一个待排序的数列拆分成多个长度为1的数列;然后再将这些长度为1的数列两两合并成长度为2的多个有序数列,接着再把这些长度2和有序数列两两合并成长度为4的有序数列…直到合并为原数列长度的有序数列。所以归并排序主要有连个步骤:”从下往上的分解“和”从上往下的合并“原创 2023-05-08 16:50:09 · 438 阅读 · 0 评论 -
快速排序(java代码)
文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimpor原创 2022-04-27 17:05:58 · 22994 阅读 · 7 评论 -
插入排序
插入排序备注:插入排序的时间复杂度为O(N^(1~2)),最好的情况就是O(N),最差的情况就是 O(N²)。所以插入排序比选择排序更优。文章目录插入排序一、插入排序的思想二、插入排序的实现案例三、实现代码一、插入排序的思想插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当原创 2021-01-16 12:40:33 · 150 阅读 · 0 评论 -
选择排序
选择排序备注:选择排序和冒泡排序是时间复杂度都是O(n²) (因为都是双层for循环),但是选择排序比冒泡排序更优(可以通过测试排序大量数据测试)。一、选择排序的思想选择排序(select sorting)是一种简单的排序方法。它的基本思想是:第一次从arr[0] ~ arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1] ~ arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2] ~ arr[n-1]中选取最小值,与arr[2]交换,…,第i次从arr[i-1原创 2021-01-11 17:03:50 · 467 阅读 · 0 评论 -
冒泡排序
冒泡排序文章目录冒泡排序一、什么是冒泡排序?二、冒泡排序实例演示1.思想2.实例3.代码实现三、冒泡排序的优化1.哪里优化了?2.优化代码一、什么是冒泡排序?冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。二、冒泡排序实例演示1.思想冒泡排序思想:冒泡排序需要经过多趟排序(n-1趟(n为数据个数)),第一趟排序将最大数(以从小到大排原创 2021-01-09 11:26:53 · 653 阅读 · 1 评论 -
算法的时间复杂度(常见时间复杂度及其实例)
算法的时间复杂度文章目录算法的时间复杂度一、什么是算法的时间复杂度?1.时间频度2.时间复杂度二、常见的时间复杂度1.常数阶O(1)2.对数阶O(log₂n)3.常数阶O(1)1.常数阶O(1)1.常数阶O(1)1.常数阶O(1)1.常数阶O(1)一、什么是算法的时间复杂度?1.时间频度要了解时间复杂度的概率就得先知道什么是时间频度。时间频度:一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)原创 2021-01-09 09:31:44 · 2746 阅读 · 0 评论