
记录
本专栏只为记录而生,会比较杂。记录自己的成长,每天进步一点点,那么终将量变产生质变。
obsidianer
要做有思想的程序猿,猿与你一起成长
展开
-
冒泡排序之进阶快速排序
(3)然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大值。右侧的数组数据也可以做类似处理。通过递归将左侧部分排好序后,再递归排好右侧部分的顺序。当左、右两个部分各数据排序完成后,整个数组的排序也就完成了。(2)将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于分界值,而右边部分中各元素都大于或等于分界值。(1)首先设定一个分界值,通过该分界值将数组分成左右两部分。原创 2023-05-15 08:02:03 · 189 阅读 · 0 评论 -
直接插入排序
插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动。原创 2023-05-13 16:32:46 · 97 阅读 · 0 评论 -
交换排序之冒泡排序
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。原创 2023-05-13 14:53:09 · 89 阅读 · 0 评论 -
简单选择排序
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。原创 2023-05-13 14:44:03 · 76 阅读 · 0 评论 -
二分查找-折半查找
首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。2.必须按关键字大小有序排列。1.必须采用顺序存储结构。原创 2023-05-13 12:41:58 · 99 阅读 · 0 评论 -
计数排序-很有意思的一种排序方法
计数排序的基本思想是对于给定的输入序列中的每一个元素x,确定该序列中值小于x的元素的个数(此处并非比较各元素的大小,而是通过对元素值的计数和计数值的累加来确定)。当然,如果有多个元素具有相同的值时,我们不能将这些元素放在输出序列的同一个位置上,因此,上述方案还要作适当的修改。一个序列中有n个元素,通过序列中每一个元素小于其的元素的个数来确定另一个序列的下标,然后这个元素就是该下标上的值。2、扫描整个线性表L,对L中的每一个元素Li,将Li放在输出线性表的第T(Li)个位置上,并将T(Li)减1。原创 2023-05-13 11:04:53 · 113 阅读 · 0 评论