算法系列

简介:   算法对程序员来说是熟悉的陌生人,编过大量代码后突然被哪个问到算法是什么也有时不知从何说起,简单来说是没有好好总结过仔细分析过。大学里面导师整天苦口婆心的教导算法有多么多么重要,但哪个能真正听得进去,即使认真的学了出了社会过个两三个月就忘到九霄云外了,记得算法的排序有几种就算不错了的。

  算法对程序员来说是熟悉的陌生人,编过大量代码后突然被哪个问到算法是什么也有时不知从何说起,简单来说是没有好好总结过仔细分析过。大学里面导师整天苦口婆心的教导算法有多么多么重要,但哪个能真正听得进去,即使认真的学了出了社会过个两三个月就忘到九霄云外了,记得算法的排序有几种就算不错了的。说到底还是没有真正的理解,而理解是建立在应用之上,用多了亲历了也就知道其中的道理,学好了也能锻炼自己的抽象能力,因此平时没事就多拿出来多练哈,没准哪天突然开窍了也说不定。

  自己也是意识到学好算法的重要性,因此一直也在找一些好的资料,之前是准备找一本数据结构的书好好从头开始看,不过书上理论太多,而且都是伪代码,因此看完后也只能记住一些名词定义达不到灵活现用的地步。后来在网上找一些牛人的文章,以下谈谈自己的一点点总结吧。

  算法不分语言的,只要有思想不论哪种语言都能实现算法。在此也就说排序,排序分为4种:1.交换排序:冒泡与快排;2.选择排序:选排与堆排序;3.插入排序:插排与希尔排序;4.合并排序;

  冒泡:冒泡的思想可以看做是一堆石头沉入水底,小的不断往下浮,大的往下沉,小的从底下不断与它上面的想交换,不断的重复这个过程

那么我们就数组:50 、10、30、20、40      

要达到冒泡的效果,我们就要把一组数字竖起来看,大家想想,如何冒泡?如何来体会重的沉底,轻的上浮?

第一步:  我们拿40跟20比,发现40是老大,不用交换。

第二步:  然后向前推一步,就是拿20跟30比,发现30是老大,就要交换了。

第三步:拿交换后的20跟10比,发现自己是老大,不用交换。

第四步:拿10跟50交换,发现50是老大,进行交换。

最后,我们经过一次遍历,把数组中最小的数字送上去了

以下是js实现的实例:

    //冒泡排序
function BubbleSort(arr){
var temp=0;

for (var i=0;i<arr.length -1;i++){//有5个数,不与自己比较要比较4次
for(var j=arr.length-1;j>i;j--){//每次都从 最后一位开始,每次比较后次数都在减少1
if(arr[j-1]>arr[j]){
temp=arr[j-1];
arr[j-1]=arr[j];
arr[j]=temp;
}
}
}
return arr;
}

以上是http://www.cnblogs.com/huangxincheng/archive/2011/11/14/2249046.html 算法系列15天速成中介绍的思想,以C#实现且算法之间进行了效率比较,这里自己以JS代码自己重新实现了。

  每天一小步,信心一大步。

 

目录
相关文章
|
17天前
|
算法
算法题(6)
算法题(6)
23 7
|
17天前
|
算法
算法题(4)
算法题(4)
35 6
|
18天前
|
算法
算法题(2)
算法题(2)
24 3
|
3月前
|
算法
一道算法题
一道算法题
16 0
|
11月前
|
算法
算法
一、算法 常见的图查找算法包括: 1. 深度优先搜索(DFS):从图中的一个节点开始,沿着一条路径一直深入直到无法再深入为止,然后回溯到上一个节点,继续深入其他路径,直到找到目标节点或遍历完所有节点。 2. 广度优先搜索(BFS):从图中的一个节点开始,先访问它的所有邻居节点,然后再依次访问邻居的邻居节点,直到找到目标节点或遍历完所有节点。 3. Dijkstra算法:用于在带权有向图中找到从一个节点到其他节点的最短路径。该算法通过不断更新节点的最短距离来逐步找到最短路径。 4. A*算法:类似于Dijkstra算法,但在计算最短路径时加入了启发式函数,用于估计目标节点的距离,从而加速搜索过程
388 0
|
算法 索引
插值查找算法
插值查找算法
推公式算法的实现
推公式算法的实现
推公式算法的实现
|
算法
A*算法
A*算法
212 0
A*算法
|
机器学习/深度学习 算法 搜索推荐
C#算法大全(中)
今天有人想让我搞一期C#算法大全。算法就算法,安排上!
|
算法
算法练习——(2)逢7过
中国朋友们聚会时喜欢玩"逢7过"的游戏,老外有个同样的游戏,FlipFlop,它从1计数到100,顺序输出。当遇到3的倍数就要说“Flip”,遇到5的倍数就要说“Flop”,既为3的倍数又为5的倍数则要说“FlipFlop”,说错的话表演节目或罚酒。
168 0