随笔分类 - 算法学习
从零开始
摘要:##计数排序 计数排序(Count Sort)是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。 计数排序的核心在于将输入的数据值转化为键存储在额外开
阅读全文
摘要:排序算法中的第7个 #堆排序 堆排序是指利用“堆”这个数据结构进行排序 而堆是一个近似完全二叉树的结构 排序思路 构建一个堆(大顶堆或小顶堆) 把堆首(最大值)和堆尾元素互换 把堆的尺寸缩小1,并重新构建新的堆,目的是把新的数组顶端数据调整到相应的位置 重复2,3步骤 直到堆的尺寸为1 排序结束 演
阅读全文
摘要:今天说一说快速排序 什么是快速排序: 快速排序是对冒泡排序的一种改进算法 因为冒泡排序需要每次都对相邻的两个数进行比较 显然非常浪费时间,而快速排序之所以这么叫 当然是因为它快了 快速排序也使用的分治法 类似于归并 并且是在冒泡的基础上 可以说集两种算法的优点 我理解的快速排序也可以说是 “分区”的
阅读全文
摘要:前两天写了4个排序 今天弄明白了一个稍微复杂点的排序算法、 #归并排序 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 简单理解 归并排序就是把一个数组通过递归的方式 不断的从中间拆分,直到不可
阅读全文
摘要:#冒泡排序 重复遍历数列 每次都遍历都将两个数按照一样的顺序调过来 直到排序完成 //冒泡排序 public int[] bubble(int[] arr) { int temp; for (int i = 0; i < arr.length-1; i++) { for (int j=0;j<arr
阅读全文
摘要:##题目要求 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,
阅读全文

浙公网安备 33010602011771号