![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
菜鸟学算法
长剑废水
这个作者很懒,什么都没留下…
展开
-
菜鸟学排序:快速排序
今天来写一个快速排序。快速排序的核心就是选定一个基准数,然后分区,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。再对左右区间重复第二步,直到各区间只有一个数。 举个栗子,一组学生上体育课,需要重新按身高从高到底进行列队,这时候老师提出了一个方案(果然数学是体育老师教的(╯□╰)):1.以当前队伍中队首的那个同学身高为标准,设为key,2.先用队尾同学的身高与ke原创 2015-03-25 13:57:49 · 755 阅读 · 0 评论 -
菜鸟学排序:直接插入排序
还是体育课的栗子,一组学生上体育课,需要重新按身高从高到底进行列队,这时候有一个同学提出了一个方案:1.首先他自己站出来单独为一队,2.接着同学们一个个跟他单独所在的这个队的最后一个同学来比较身高,比最后一个同学还高则就站在这个队列的最后成为新的队尾,否则比最后一个同学矮的话就跟最后一个同学交换位置,再依次跟前面的同学比较交换,当这个方案提出同学所在队列只有一个人时,他自己本身即是队尾,原创 2015-03-26 10:51:04 · 563 阅读 · 0 评论 -
菜鸟学排序:折半插入排序
与直接插入排序思路相似,也是先将a[0]视为单独有序,只不过查找插入点的方法不再是与有序数组最后一个数进行比较,而是使用折半查找。 比如现有有序数列:1,2,4,6,8,欲插入数7,则现将7与中间位置的数4比较,大于4,则说明插入点应该在后半区6,8 ,由于后半区个位为偶,这里取前一位6进行比较,大于6,则说明插入点在后半区数列8前后,与8比较,小于8,则插入点在8之前。 总之,就是将原创 2015-03-26 11:18:51 · 632 阅读 · 0 评论 -
菜鸟学排序:简单选择排序
试想北宋年间某一天,梁山108好汉要上聚义厅开会,开会嘛,自然要论资排辈排排坐。但现在由于某些原因108好汉已经随机次序的坐在了108把椅子上,需要重新排定一下座次。怎么办呢?这时候,坐在第一把椅子上的哥们先站起来,找一找老大宋江此时正坐在哪里,然后和宋江交换座位,接着,坐在第二把椅子上的兄弟起身,找一找卢老二坐在那里(注意此时不需要回头看第一把坐的谁,因为前面的哥们已经搞定了),同样交换座位,当原创 2015-03-24 14:02:38 · 538 阅读 · 0 评论 -
菜鸟学排序:冒泡排序
冒泡排序思路比较简单,依次比较相邻的两个元素,“清气上升,浊气下沉”。想象YY小说中的,随着主角境界的提升,一步步的将对手踩在脚下,进步到权重更大的位置,不就是一趟冒泡排序最好的解释嘛。 void bubbleSort(int a[],int length){ int i,j; for (i = 0; i < length; i++) { //外层循原创 2015-03-25 17:54:58 · 660 阅读 · 0 评论