自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 资源 (1)
  • 收藏
  • 关注

原创 排序算法(5)--快速排序QuickSort(非递归实现)

非递归写法 利用栈 主要需要记录起始和结尾即low和high 的值,用循环只能处理一边,所以需要将temp后面的起始和结尾下标记录下来。利用栈来记录(也可以使用队列)。 比如待排序数组为{7,3,9,6,0,15,5,13} 来记录low 和high的值 先入low,最后的是high 逻辑步骤: 假设数组中有n个待排序数字, 1.设置一个low 和一个high low指向当前待排序数组的最左边的下...

2018-09-22 20:18:30 449

原创 排序算法(5)--快速排序QuickSort(递归实现)

快速排序 时间复杂度: 平均O(nlogn) 最差的情况就是每一次取到的元素就是数组中最小/最大的,这种情况其实就是冒泡排序了(每一次都排好一个元素的顺序) 这种情况时间复杂度,就是冒泡排序的时间复杂度:T[n] = n * (n-1) = n^2 + n; 综上所述:快速排序最差的情况下时间复杂度为:O( n^2 ) 空间复杂度: 最优的情况下空间复杂度为:O(logn) ;每一次都平分数组的...

2018-09-21 20:14:47 684

原创 排序算法(4)--希尔排序ShellSort

介绍: 希尔排序是插入排序的一种,是针对直接插入排序算法的改进。该方法又称缩小量排序,实质是分组插入排序。因DL.Shell于1959年提出而得名。希尔排序是非稳定排序算法。 不稳定地排序算法,有跳跃式的交换数据。 时间复杂度: 是所取增量序列的函数。 注意事项: 应使增量序列中的值没有除1以外 的公因子,并且最后一个增量值必须等于1。 希尔排序的基本思想是: 间隔式分组,然后使用直接插入排序使组...

2018-09-21 20:12:17 169

原创 排序算法(3)--直接插入排序InsertSort

介绍: 插入排序的工作原理是,对于每个未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 越有序越快 步骤: 1.从第一个元素开始,该元素可以认为已经被排序 2.取出下一个元素,在已经排序的元素序列中从后向前扫描 3.如果被扫描的元素(已排序)大于新元素,将该元素后移一位 4.重复步骤3,直到找到已排序的元素小于或者等于新元素的位置 5.将新元素插入到该位置后 6.重复步骤2~5 时间复...

2018-09-21 20:05:29 290

原创 排序算法(2)--选择排序SelectionSort

步骤: 在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。 以此类推,直到所有元素均排序完毕。 最坏情况:O(n^2), 最好情况:O(n^2)。 代码实现: #include <stdio.h> #include <assert.h> void SelectSort(int *arr, i

2018-09-21 20:02:49 185

原创 排序算法(1)--冒泡排序BubbleSort

冒泡排序,是将数组由小到大,或由大到小的一种排序算法。 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对第0个到第n-1个数据做同样的工作。这时,最大的数就“浮”到了数组最后的位置上。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 因此时间复杂度是O(n^2),空间复杂度是O(n) 下面是没有经过优化,并且未使用sw...

2018-09-21 19:56:11 246

MYSQL开发学习笔记

MYSQL开发学习笔记适合初学者

2019-02-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除