
儿童算法
初心始终钰
Android Life
展开
-
2.快速排序
2.快速排序快速排序前言实现思路实现代码Main前言快速排序可以说是所有排序算法里最常用、最优秀、最效率的算法。它是冒泡排序的改进版。就像它的名字一样,“快速”!实现思路实现思路是非常有趣的: - 1.先一个基准数(一般选择第一个数。即,index = 0)。 - 2.来个while,从数组最右边开始找比基准数小的数,记录下标为 r。 - 3.在再来个while,从数组最左边开始找比原创 2015-10-23 22:14:50 · 4159 阅读 · 0 评论 -
1.冒泡排序
1.冒泡排序冒泡排序前言实现思路实现代码Main前言冒泡排序应该是最经典的排序算法了,连我大学的C语言老师上课讲的第一个排序算法就是冒泡排序,略坑的我,当时听的还稀里糊涂的。实现思路实现思路也是非常非常简单:两个for循环,然后分别判断相邻元素的大小:如果要升序排,那么就判断后者是否小于前者,是就交换元素。如果要降序排,那么就判断后者是否大于前者,是就交换元素。实现代码public原创 2015-10-23 11:12:52 · 4591 阅读 · 0 评论 -
3.选择排序
3.选择排序选择排序前言实现思路模拟走位实现代码运行前言选择排序的含义就是因为每一次最内层for走一趟都会选择出一个最大或最小的数。实现思路比如有N个数,开始先选取第一个数( i= 0 )作为基准数。然后抛开这个数以以前的数,右边的数( i+1 To n-1 )走一趟for,找出最小(最大也行,看你是要升序还是降序),然后拿到这个最小的数,和基准数交换。然后下一次又重新定位基准数 i +原创 2015-10-23 22:16:21 · 4213 阅读 · 0 评论 -
4.插入排序
4.插入排序插入排序前言实现思路模拟走位模拟走位Main前言插入排序的效果就像将一个数组模拟成两个数组的在选择、插入的过程。实现思路假设在下标 i 之前的是数都已经排好了顺序( 0 … i-1 ),那么此次需要找到 i 位置的数的正确位置 k 。在寻找这个位置 k 的过程中,逐个比较 i 之前排好顺序的数组,先比较最大的 i-1 位置的数(因为有序,所以 i 以前的数, i-1 是最大的原创 2015-10-23 22:16:46 · 4212 阅读 · 0 评论 -
5.希尔排序
5.希尔排序希尔排序前言实现思路模拟走位实现代码运行前言希尔排序也称为缩小增量排序,是插入排序算法的一种改进版。希尔排序应该是最难的排序了希尔排序的诞生是由于插入排序在处理大规模数组的时候会遇到需要移动太多元素的问题。实现思路希尔排序的思想是将一个大的数组“分而治之”,将一个大的数组划分为若干个小的数组。以 gap (间隔)来划分,比如数组 [ 1 , 2 , 3 , 4 , 5 , 6原创 2015-10-23 23:29:07 · 4270 阅读 · 0 评论