
八大排序算法
。。。
crazyK.
代码小白
展开
-
八大排序之堆排序(java实现)
一、堆排序原理(从小到大)1.堆排序特点1)堆排序是利用堆这种数据结构而设立的一种排序算法2)完全二叉树(从上到下,从左到右,每一层的节点都是满的,最下边一层所有的节点都是连续集中在最左边)。3)二叉树每个结点的值都大于或者等于其左右孩子节点的值称之为大顶堆。二叉树每个结点的值都小于或者等于其左右孩子节点的值称之为小顶堆。将数组转换成堆后可以看出如下规律N[i]的左节点:N[2i+1]N[i]的右节点:N[2i+2]N[i]的父节点:N[(i-1)/2)]2.基原创 2022-03-11 15:01:26 · 645 阅读 · 0 评论 -
八大排序之快速排序(java实现)
一、快速排序原理(从小到大)1.基本思想通过一趟排序将待排序列分成两部分,若一部分比另一部分小,则可继续对这两部分继续排序,从而使整个待排序列变得有序。2.算法描述1)将数组中的一个数字作为基准数2)一般将数组中左边第一个数字作为基准数,然后从两边开始遍历,左边找比基准数大的,右边找比基准数小的,都找到后交换两个数的位置,当两指针相遇时,将指针所指向的数于基准数交换,然后数组被分成了两部分。3)递归地对上一步分出的两数组进行排序。3...原创 2022-03-11 11:44:17 · 1575 阅读 · 0 评论 -
八大排序之插入排序(java实现)
一、插入排序原理(从小到大)插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。二、代码实现public static void main(String[] args) { int[] nums = new int[]{1,3,7,2,4,8,6}; .原创 2022-03-10 15:02:59 · 282 阅读 · 0 评论 -
八大排序之选择排序(Java实现)
一、选择排序原理(从小到大)对一个给定的数组:第一次从arr[0到]arr[n-1]中选取最小值,与arr[0]交换;第二次从arr[1]到arr[n-1]中选取最小值,与arr[1]交换,…,第i次从arr[i-1]arr[n-1]中选取最小值,与arr[i-1]交换,…,第n-1次从arr[n-2]~arr[n-1]中选取最小值,与arr[n-2]交换,总共通过n-1次,得到从小到大排序的有序数组二、代码实现...原创 2021-12-03 23:13:26 · 181 阅读 · 0 评论 -
八大排序之冒泡排序(Java实现)
一、冒泡排序原理(从小到大)对待排序的数组从前往后遍历,遍历过程中如果发现两个数据大小顺序不符时,对两个数据进行交换,这时较大的数据就会往后移动(如图所示)注意:排序过程中每一轮都会将最大的数移动到最后面,所以每次遍历比较的次数都会比上一轮少一次二、示例有下列一组数据[3,2,1,4] ,接下来我们用冒泡的方法对其进行排序第一轮:从数组的第一个数据3的位置开始遍历,发现3的下一个数据比3小,那么需要把3和2的位置进行交换然后从3的位置开始,3和4遵从升序,无需交...原创 2021-12-03 17:23:56 · 747 阅读 · 0 评论