
算法与数据结构
chaobin05240108
glkk8.com?s=csdn
展开
-
数据结构
同样的道理,不同的人,所表达的方式与方法是不同的;程序设计也是一样,每个程序员都懂得程序的语法与结构,但是写出来的程序,个个不同;有些人写的代码简单明了、有些人写的反复丛杂,有的人写的代码效率很高,有的人写的运行速度很慢,有的人写的代码隐含有很多漏洞。。。 实际上一个功力深厚的高手可以从一个人写的代码,就能看出这个人的境界。 一个人如果写的代码很清晰明了,注释清晰,只要懂得一点编程的人,很快就原创 2013-12-24 23:30:26 · 403 阅读 · 0 评论 -
冒泡排序
比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。转载 2014-05-05 06:18:27 · 391 阅读 · 0 评论 -
选择排序
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。转载 2014-05-05 06:22:08 · 436 阅读 · 0 评论 -
插入排序
一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下: ⒈ 从第一个元素开始,该元素可以认为已经被排序 ⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描 ⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置 ⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置 ⒌ 将新元素插入到下一位置中 ⒍ 重复步骤2~5 如果比较操作的代价比交换操作大的话,可转载 2014-05-05 06:25:46 · 420 阅读 · 0 评论 -
堆排序
n个关键字序列Kl,K2,…,Kn称为(Heap),当且仅当该序列满足如下性质(简称为堆性质):转载 2014-05-05 06:41:51 · 317 阅读 · 0 评论 -
归并排序
归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个有序的子序列,再把有序的子序列合并为整体有序序列。 public class MergeSort { // private static long sum = 0; /** * * 二路归并 * 原理:将两个有序表合并和一个有序表 *转载 2014-05-05 06:44:47 · 413 阅读 · 0 评论 -
快速排序
设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。 一趟快速排序的算法是: 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2)以第一转载 2014-05-05 06:48:55 · 349 阅读 · 0 评论 -
希尔排序
希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序转载 2014-05-05 07:03:22 · 336 阅读 · 0 评论