算法
文章平均质量分 87
基础算法
junff
Talk is cheap,show me the code
展开
-
基础算法----桶排序(Bucket sort)
桶排序并不是基于比较的排序桶排序是将序列分为多个区域,即多个桶,再对每个桶中元素进行排序,最后再把每个桶的元素依次放到序列中,排序完成原创 2023-05-12 21:50:22 · 334 阅读 · 0 评论 -
基础算法----堆排序
堆排序是基于二叉树的一种排序算法1 堆排序需要满足两个条件1) 二叉树是一种特殊的二叉树:完全二叉树2) 二叉树的每个父节点的值都必须大于等于(小于等于)左右子节点(如果存在)的值2 完全二叉树的属性第i个节点,那么:父节点(如果存在):(i-1)/2左子节点(如果存在):2i+1右子节点(如果存在):2i+2原创 2023-05-13 14:02:01 · 1263 阅读 · 0 评论 -
经典算法----基础知识
算法基础:算法稳定性,时间复杂度,空间复杂度原创 2023-05-12 21:48:53 · 242 阅读 · 0 评论 -
基础算法----基数排序(Radix Sort)
基数排序是一种以空间换时间的算法将所有待比较数值统一为同样的数位长度,数位较短的数前面补零,然后按位数依次比较原创 2023-05-12 21:52:14 · 248 阅读 · 0 评论 -
基础算法----计数排序(Counting Sort)
计数排序不是一个基于比较的排序算法,是一个以空间换时间的算法计数排序是将待排序序列中的元素作为索引存储在额外的数组空间中,而该元素的出现的次数作为值存储在数组空间中,通过遍历额外的数组排序原创 2023-05-06 16:44:08 · 261 阅读 · 0 评论 -
基础算法----归并排序(Merge Sort)
归并排序将待排序序列分割成若干个子序列,递归分割子序列,直到不能分割,然后递归合并子序列(递归地使每个子序列有序,然后再把有序的子序列合并成一个有序的序列)归并排序的速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列归并排序是采用分治法(Divide and Conquer)的排序算法,比较占用内存,但却是一种效率高且稳定的算法原创 2023-05-12 21:52:34 · 330 阅读 · 0 评论 -
基础算法----希尔排序(Shell‘s Sort)
希尔排序是插入排序的一种,又称"缩小增量排序"(Diminishing Increment Sort),是基于直接插入排序算法的改进版本取一个增量increment(一般是待排序序列长度的一半,向下取整)作为间隔,所有距离为increment的元素放在同一组中,对每组进行插入排序,然后缩小间隔increment(每次缩小一半,向下取整),直到最后increment=1希尔排序实质上是一种分组的插入排序原创 2023-05-03 16:59:30 · 113 阅读 · 0 评论 -
基础算法----插入排序(Insertion Sort)
插入排序从无序部分取出一个元素(当前元素),与有序部分中的元素从后向前依次进行比较,并找到合适的位置(从后往前,第一个大于等于或小于等于当前元素的元素后面),将该元素插到有序组当中。重复该过程,直到所有元素都插入到正确的位置原创 2023-05-03 15:48:57 · 294 阅读 · 0 评论 -
基础算法----选择排序(Selection Sort)
选择排序从未排序序列中找到最小/大元素,存放到已排序序列的末尾,重复此过程,直到未排序序列的元素个数为零原创 2023-05-03 15:48:10 · 305 阅读 · 0 评论 -
基础算法----快速排序(Quick Sort)
快速排序是一种基于分治思想的比较排序算法选取一个基准元素(通常是序列的第一个或最后一个元素)作为基准值,小于基准值的元素移到基准值的左边,大于或等于基准值的元素移到基准值的右边然后分别对左、右子序列递归排序,当左、右子序列排序完成(长度小于等于1),整个序列的排序完成原创 2023-05-03 15:47:11 · 1171 阅读 · 0 评论 -
基础算法-----冒泡排序(Bubble Sort)
冒泡排序是一种简单的排序算法,适用于小规模数据排序依次比较两个相邻的元素, 如果顺序错误则交换位置, 重复此过程直到没有相邻元素需要交换原创 2023-05-03 15:46:20 · 270 阅读 · 0 评论