数据结构与算法
文章平均质量分 71
brightyuan
一步步走
展开
-
数据结构之排序
基数排序的基本思想,基数排序可以说是扩展了的桶式排序,比如当待排序列在一个很大的范围内,比如0到999999内,那么用桶式排序是很浪费空间的。而基数排序把每个排序码拆成由d个排序码,比如任何一个6位数(不满六位前面补0)拆成6个排序码,分别是个位,十位,百位。。。。一般有两种方式: 1) 高位优先(MSD): 从高位到低位依次对序列排序 2)低位优先(LSD): 从低位到高位依原创 2012-12-24 14:30:20 · 600 阅读 · 0 评论 -
《编程之美》阅读笔记
2.1求8位二进制数中1的个数解法1:直观法,每次除以2,计算余数为1的个数 O(log2v) 解法2:简单位操作,每次与0x01做与运算,再右移一位。O(log2v)解法3:使用位操作v & (v-1) , 每次可减少二进制数字中的一个1。(若v & (v-1) == 0, 则v为2的方幂) 解法4:空间换时间,利用题目中字长8位的破绽,建立一个穷举数组。O(1)知识点:转载 2013-07-11 13:08:09 · 884 阅读 · 0 评论 -
几大排序算法C++实现
public class SortMethod { //直接插入排序 public void InsertSort(int[] L){ for(int i=1;i if(L[i] int t = L[i], j; //t用来临时存放当前所指数 L[i]=L[i-1]; for(j=i-2;(j>=0)&&(t L[j+1]=原创 2013-07-14 13:45:08 · 860 阅读 · 0 评论 -
洗牌算法(From 《编程珠玑》
1.生成[0,n)的之间k个不重复的随机整数。1#include2#include3#include4#include5using namespace std;转载 2013-08-01 17:43:06 · 914 阅读 · 0 评论 -
程序员编程艺术算法归纳
第一章、左旋转字符串题目描述:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数,要求对长度为n的字符串操作的时间复杂度为O(n),空间复杂度为O(1)。 解法二:假设原数组序列为abcd1234,要求变换成的数组序列为1234abcd,即循环右移了4位。比较之翻译 2013-09-01 13:59:08 · 848 阅读 · 0 评论 -
算法第一篇之概念
1. 算法是什么算法:一种计算的方法,在程序设计上,表现为一组指令序列。 输入->sf2. 如何评价算法对于程序设计而言,无非就是两个方面:算法有多快?(时间效率);内存耗得多不多?(空间效率)算法的复杂度分析,包括上述两个方面,各自称为时间复杂度分析和空间复杂度分析。通常我们更关注的是算法的时间复杂度。 设问题规模为n,即输入数据的大小转载 2014-09-11 15:42:09 · 593 阅读 · 0 评论