激励我写博文有很大的原因是,在校电面的时候,被问到了很多基础算法问题。当时瞬间懵哔了。痛定思痛。决定好好复习下常用的基础算法。 一).常见的排序算法。 1).简单选择排序。 基本思想:每一趟在后面n-1个待排的数据中选出一个最小(大)的数据作为有序序列的第i个元素。之后依次循环遍历。 ...
分类:
编程语言 时间:
2015-07-10 00:11:15
阅读次数:
226
选择排序(Selection sort)是一种常见的排序算法,算法实现的逻辑每一次从待排序的数组中选出最小(或最大)的一个元素,存放在序列的第一个位置,然后生鲜的元素中选择第二小(或者第二大)的元素放在第二个位置,以此类推,将整个数组排序成功。对于一个长度为N的数组,选择排序大概需要N^2/2的比较...
分类:
编程语言 时间:
2015-06-16 09:12:16
阅读次数:
146
转自:blog.csdn.com/whuslei排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进行整理便于理解记忆显得很重要。每种算法都有它特定的使用场合,很难通用。因此,我们很有必要对所有常见的排序算法进行归纳。 我不喜欢死记硬背,我更偏向于弄清来龙去脉,理解性地记忆...
分类:
编程语言 时间:
2015-06-09 09:36:15
阅读次数:
113
前言: 本人自接触算法近2年以来,在不断学习中越多地发觉各种算法中的美妙。之所以在这方面过多的投入,主要还是基于自身对高级程序设计的热爱,对数学的沉迷。回想一下,先后也曾参加过ACM大大小小的校级赛、区域赛。没什么惊天动地的奖项,最好的名次也就省三等奖。现在作为第一篇算法总结就拿常见的排序算法以我....
分类:
编程语言 时间:
2015-06-08 06:10:28
阅读次数:
168
常见的排序算法总结一下常见的排序算法。排序分内排序和外排序。内排序:指在排序期间数据对象全部存放在内存的排序。外排序:指在排序期间全部对象个数太多,不能同时存放在内存,必须根据排序过程的要求,不断在内、外存之间移动的排序。内排序的方法有许多种,按所用策略不同,可归纳为五类:插入排序、选择排序、交换排...
分类:
编程语言 时间:
2015-04-10 17:05:34
阅读次数:
179
1.插入类排序在一个已经有序的序列中,插入一个新的记录。有直接插入排序、折半插入排序、希尔排序。插入类排序直接插入排序 1 void InsertSort(int R[], int n) 2 { 3 int i, j; 4 int temp; 5 for (i = 1; i ...
分类:
编程语言 时间:
2015-03-31 19:37:43
阅读次数:
176
1.冒泡排序已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先比较a[1]与a[2]的值,若a[1]大于a[2]则交换两者的值,否则不变。再比较a[2]与a[3]的值,若a[2]大于a[3]则交换两者的值,否则不变。再比较a[3]与a[4],以此类推,最后比较a[n-1]与a[...
分类:
编程语言 时间:
2015-03-30 20:27:37
阅读次数:
169
常见的排序算法有Bubble Sort、Merge Sort、Quick Sort 等,所有排序算的基本法思想都是把一个无限大的数据规模通过算法一步步缩小,指导最后完成排序。这里分享一下Buuble Sort算法,php版本的。冒泡排序不适合在待排序的数据集特别大的情况下,这里只是一个简易的demo...
分类:
编程语言 时间:
2015-03-18 00:56:34
阅读次数:
204
程序员必须知道的一些排序算法,几乎已经成为面试笔试中的固有模式,一个优秀的程序员不仅要会写,还要深入理解其中的原理,设计思想。一些常见的排序算法做一下归纳总结。排序算法的分类:其中,像直接插入排序,二分插入排序,冒泡排序,快速排序,简单选择排序,堆排序等都需要熟练掌握。
分类:
编程语言 时间:
2015-03-08 12:53:59
阅读次数:
200
为加深排序算法的理解,总结一下常见的排序算法。
排序算法的大致分类:(网上找的图)
具体的实现:
直接插入排序:
基本原理为将待排序的数组分为有序区域和无序区域,每次将无序区域的一个数值插入到有序区域并排好序。最终实现排序。
void InsertSort(int k[],int n)
{
int i, j, temp;
for(i = 1; i < n; i...
分类:
编程语言 时间:
2015-02-27 20:18:02
阅读次数:
220