随笔分类 - 排序
各种排序算法
    
摘要:图文来源:https://www.cnblogs.com/chengxiao/p/6129630.html 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆排序是利用堆这种数据结构而设
        阅读全文
                
摘要:希尔(Shell)排序又称为缩小增量排序,它是一种插入排序。它是直接插入排序算法的加强版。 希尔增量: 希尔增量是指希尔提出了一种冲破二次时间屏障的算法。 希尔增量是指希尔提出了一种冲破二次时间屏障的算法。 Donald Shell 提出了一种冲破二次时间屏障的算法Shellsort(希尔排序),在
        阅读全文
                
摘要:直接插入排序法就像我们打扑克牌时整理牌面一样,先让我们脑补一下我们打牌的过程。 首先摸了一张6, 接着摸到一张4,比6小,插到6的前面; 又摸到一张7,比6大,插到6的后面; 又摸到一张5,比6小,比4大,插到4和6中间; 。。。。 以上的过程,其实就是典型的直接插入排序,每次将一个新数据插入到有序
        阅读全文
                
摘要:之前已经介绍过冒泡排序算法和简单选择排序算法和原理,现在有Js实现。 冒泡排序算法 简单选择排序算法 初始关键字:『 8,5,2,6,9,3,1,4,0,7 』 第一趟排序后:0,『5,2,6,9,3,1,4,8,7』 第二趟排序后:0,1,『2,6,9,3,1,4,8,7』 第三趟排序后:0,1,
        阅读全文
                
摘要:归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 可以看到这种结构很像一棵完全
        阅读全文
                
摘要:要说快排的原理,通俗点说就是把一个事情,分成很多小事情来处理,分治的思想。 假设我们现在对“6 1 2 7 9 3 4 5 10 8”这10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。一般选第一个数6作为基准数。接下
        阅读全文
                
摘要:这个指针函数完全是自己修修改改独立完成的,感觉这段时间进步挺大的,满意! 牢记选择排序法的思想,排序子函数中,重新设一个指针变量p,将k的地址赋给p,是因为后面要把j的地址赋给p,而不能直接赋给k,因为k是外面的for循环的循环变量,不能随便赋值,会乱套!! 主函数中,在调用sort函数之前,一定要
        阅读全文
                
摘要:/选择排序法对数组中的n个数,由小到大排序#include<stdio.h> main() { int n=10,i,b,a[10]; int sort(int array[],int n); // scanf("%d",&10); for(i=0;i<10;i++)//键盘输入数组元素 scanf
        阅读全文
                
 
                    
                
 浙公网安备 33010602011771号
浙公网安备 33010602011771号