前言
查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。
面试官对于这...
分类:
编程语言 时间:
2016-04-29 17:00:59
阅读次数:
242
10种排序算法,分别是直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,直接选择排序,树形排序,堆排序,归并排序,基数排序。各有千秋,但依旧有优劣之分,熟悉每一个算法,对于我们的代码优化,也将事半功倍。 1,直接插入排序: 基本思想: 假设待排的n个记录存放在变量R中,首先将R[1]看做是有 ...
分类:
编程语言 时间:
2016-04-29 14:15:01
阅读次数:
234
转自:http://www.cnblogs.com/zxcjj/p/5445757.html 10种排序算法,分别是直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,直接选择排序,树形排序,堆排序,归并排序,基数排序。各有千秋,但依旧有优劣之分,熟悉每一个算法,对于我们的代码优化,也将事半功 ...
分类:
编程语言 时间:
2016-04-29 13:51:57
阅读次数:
272
计数排序1、 名次 :所谓名次,通俗理解即为该元素在序列中排行老几的意思。2.、如何求名次:依次对每一个元素进行比较,若排在自己(该元素)前面的元素比自己大,则前面的元素在排行计数上加1,反之则自己加1。3、利用附加数组的计数排序:根据自身名次重新整理一份排序序列存储在附加数组中,然后将附加数组值拷贝到原序列中。
1)代码:template void SortClass...
分类:
编程语言 时间:
2016-04-26 19:54:39
阅读次数:
184
前言
查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。面试官对于这...
分类:
编程语言 时间:
2016-04-25 15:09:45
阅读次数:
225
本文由@呆代待殆原创,转载请注明出处。 简介:这个排序算法不属于比较排序,在平均情况下他的时间代价是O(n),并且它假设它的输入数据均匀的分布在一个固定的区间里。 思路:桶排序假设他的输入均匀的分布在一个固定的区间,并且它将这个区间划分成均匀的子区间,每个子区间称为一个桶,然后将输入的数据分别放到对 ...
分类:
编程语言 时间:
2016-04-25 14:31:08
阅读次数:
180
面试中经常碰到排序算法的问题,所以这里把常用的几种排序总结一下 线性时间排序 计数排序:首先统计每个数的个数,然后直接得出有序的序列。时间复杂度O(n + k),空间复杂度O(k),k表示数组中最大的数 不稳定 基数排序:从最低位开始,先按照该位的大小排序,然后按照次低位的大小排序.......最后 ...
分类:
编程语言 时间:
2016-04-21 23:39:42
阅读次数:
318
本文由@呆代待殆原创,转载请注明出处。 简介:这个排序是原来用在卡片排序机上的一个算法,一般用来比较具有多对关键字域的记录,如日期(年月日),通过基数排序我们会依次对年月日这三个关键字进行排序,只要对每个关键字进行排序的算法是稳定的,那么最后输出的序列就一定是正确的。 思路:基数排序思路很简单,首先 ...
分类:
编程语言 时间:
2016-04-21 18:13:51
阅读次数:
161
本文由@呆代待殆原创,转载请注明出处。 简介:用于整数排序,不同于比较排序,计数排序假设输入元素的大小在0到k之间,通过计算比 i 小的数的个数而确定 i 的位置。 思路:计算所排序的数组中,比元素 i 小的数的个数 n,如果n=5,那么 i 就应该排列在第6个位置上,通过计算每一个元素的 n 值, ...
分类:
编程语言 时间:
2016-04-21 01:28:20
阅读次数:
306
排序算法之基数排序的C语言实现。#include"math.h"
#include"stdio.h"
/*
*基数排序 2016-04-1823:43:49
*基数排序的思想:1.求出数组中最大的元素。
* 2.求出最大元素是几位数。设为i位。
* 3.对所有的数进行i轮排序。首先排个位,然后在十位,然后百位......
* 4.每一轮..
分类:
编程语言 时间:
2016-04-19 08:49:22
阅读次数:
197