1. 跪求完整版《啊哈C语言》 不要那个只有200页的三章不完整版那个我有了
我有2. 啊哈c和啊哈c语言,这两个书有什么区别
没有区别。建议看c程序设计 谭浩强的,入门首选。
3. 新手想学数据结构,算法,是新手,看过C语言和C++基础,目前大一,求推荐书籍谢谢!
推荐一本《高级数据结构》,作者是林厚从,讲的十分棒,理论比较少,讲应用比较多,而且涉猎的数据结构相当全面(不过栈队列和链表这三个基础的没有讲)
算法方面的书没有什么推荐的(因为我算法不是看书学的,我是在计蒜客的网课学的)
4. 请问有:啊哈!算法 这本书的pdf完全版吗谢谢!
亲,手机用户部分网址不可见=转到电脑即可,如可见复制网址到浏览器即可下载
资源已光速上传网络云,请尽快查收吧。
若满意请【采纳】呦!有疑问请及时追问。
亲请放心下载,附件下载的财富值只针对其他童鞋,
提问者无需再支付财富值了哟,么么哒!
5. 求《啊哈算法》PDF
您好,以下是下载的地方,希望喜欢,谢谢!
6. 快速排序,看了解释还是不会,求通俗点的
快速排序简单的说就是选择一个基准,将比起大的数放在一边,小的数放到另一边。对这个数的两边再递归上述方法。
如本题
66 13 51 76 81 26 57 69 23,以66为基准,升序排序的话,比66小的放左边,比66大的放右边, 类似这种情况 13 。。。 66。。。69
具体快速排序的规则一般如下:
从右边开始查找比66小的数,找到的时候先等一下,再从左边开始找比66大的数,将这两个数借助66互换一下位置,继续这个过程直到两次查找过程碰头。
例子中:
66 13 51 76 81 26 57 69 23
从右边找到23比66小,互换
23 13 51 76 81 26 57 69 66
从左边找到76比66大,互换
23 13 51 66 81 26 57 69 76
继续从右边找到57比66小,互换
23 13 51 57 81 26 66 69 76
从左边查找,81比66大,互换
23 13 51 57 66 26 81 69 76
从右边开始查找26比66小,互换
23 13 51 57 26 66 81 69 76
从左边开始查找,发现已经跟右边查找碰头了,结束,第一堂排序结束
下面排序C语言的排序快速代码,参考一下
voidsort(int*a,intleft,intright)
{
if(left>=right)/*如果左边索引大于或者等于右边的索引就代表已经整理完成一个组了*/
{
return;
}
inti=left;
intj=right;
intkey=a[left];
while(i<j)/*控制在当组内寻找一遍*/
{
while(i<j&&key<=a[j])
/*而寻找结束的条件就是,1,找到一个小于或者大于key的数(大于或小于取决于你想升
序还是降序)2,没有符合条件1的,并且i与j的大小没有反转*/
{
j--;/*向前寻找*/
}
a[i]=a[j];
/*找到一个这样的数后就把它赋给前面的被拿走的i的值(如果第一次循环且key是
a[left],那么就是给key)*/
while(i<j&&key>=a[i])
/*这是i在当组内向前寻找,同上,不过注意与key的大小关系停止循环和上面相反,
因为排序思想是把数往两边扔,所以左右两边的数大小与key的关系相反*/
{
i++;
}
a[j]=a[i];
}
a[i]=key;/*当在当组内找完一遍以后就把中间数key回归*/
sort(a,left,i-1);/*最后用同样的方式对分出来的左边的小组进行同上的做法*/
sort(a,i+1,right);/*用同样的方式对分出来的右边的小组进行同上的做法*/
/*当然最后可能会出现很多分左右,直到每一组的i=j为止*/
}
7. 排序算法有哪些,简述快速排序的核心
简单的: 冒泡,选择排序,插入排序,桶排序,
复杂点的: 堆排序,归并排序,快速排序,
还有基数排序,计数排序(这两个我还没接触到,不懂)
快速排序核心:
每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。这样在每次交换的时候就不会像冒泡排序一样只能在相邻的数之间进行交换,交换的距离就大得多了。因此总的比较和交换次数就少了,速度自然就提高了。
图片及快速排序简述来源于<啊哈算法>
8. 自学数据结构和算法,哪本书比较好,不需要书本讲的很详细,但求精辟。。。还要该有的都要有
自学的话,你可以考虑一下啊哈算法这本书,如果你看算法导论这本书,你注定与编程无缘,太难了。知识足够深的人都不太能搞懂算法导论。你可以去看视频教学,这种比较效率高。如果有需要的话我有视频教程。
9. 算法入门的话看什么书比较好
原理 入门:《编码:隐匿在计算机软硬件背后的语言》
这是一本讲述计算机工作原理的书。
不过,你千万不要因为“工作原理”之类的字眼就武断地认为,它是晦涩而难懂的。作者用丰富的想象和清晰的笔墨将看似繁杂的理论阐述得通俗易懂,你丝毫不会感到枯燥和生硬。 更重要的是,你会因此而获得对计算机工作原理较深刻的理解。这种理解不是抽象层面上的,而是具有一定深度的,这种深度甚至不逊于“电气工程师”和“程序员”的理解。
不管你是计算机高手,还是对这个神奇的机器充满敬畏之心的菜鸟,都不妨翻阅一下《编码:隐匿在计算机软硬件背后的语言》,读一读大师的经典作品,必然会有收获。
实战 晋升:《编程珠玑》
正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师 Jon Bentley 以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”,成为世界计算机界名刊《ACM通讯》历史上最受欢迎的专栏,最终结集为两部不朽的计算机科学经典名着,影响和激励着一代又一代程序员和计算机科学工作者。
本书为第一卷,主要讨论计算机科学中最本质的问题:如何正确选择和高效地实现算法。
永恒的经典:《代码大全》
Steve McConnell 的原作《代码大全》(第1版)是公认的关于编程的最佳实践指南之一, 在过去的十多年间,本书一直在帮助开发人员编写更好的软件。
现在,作者将这本经典着作全新演绎,融入了最前沿的实践技术,加入了上百个崭新的代码示例, 充分展示了软件构建的艺术性和科学性。 McConnell汇集了来自研究机构、学术界以及业界日常实践的主要知识, 把最高效的技术和最重要的原理交织融会为这本既清晰又实用的指南。
无论您的经验水平如何,也不管您在怎样的开发环境中工作,也无论项目是大是小, 本书都将激发您的思维并帮助您构建高品质的代码。