`
saybody
  • 浏览: 903006 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

程序员12期算法擂台

阅读更多
看了12期的讲解,赶紧回来把代码写出来:
//huiwen.cpp:Definestheentrypointfortheconsoleapplication.
//

#include
"stdafx.h"

voidswap(char*consts,inti,intj)
...{
chartemp;
temp
=s[i];
s[i]
=s[j];
s[j]
=temp;
}

intpseudo_bubble(char*consts,intlength)
...{
inti,j,k;
intodd;
charalphabet[26];
intcount=0;

for(i=0;i<length;i++)
alphabet[s[i]
-'a']++;

odd
=-1;
for(i=0;i<sizeof(alphabet);i++)
if(alphabet[i]%2)...{
if(odd=-1)//thefirst'odd'
odd='a'+i;
else//2odds
return-1;
}


i
=0;
while(s[i]!=s[length-1-i])...{//untilthecorrespondingelementisright
j=length-1-i;
for(k=j-1;k>i&&s[k]!=s[i];k--);//findthecorrespondingelement'slocation
if(k==i)...{//findnobody->thisisthelast'odd'-closesttothecenter
swap(s,k,k+1);
}
else...{
while(k<j)...{
swap(s,k,k
+1);//bubbleitout
count++;
k
++;
}

i
++;
}

}


returncount;
}


int_tmain(intargc,_TCHAR*argv[])
...{
intx;
chars[]=...{'a','b','a','c','a','e','b','a','d','c','d'};
//{'a','b','a','c','a','b','a','d','c','d'};
//{'a','b','a','c','e','b','e','d','c','d'};
x=pseudo_bubble(s,sizeof(s));
if(x==-1)
printf(
"Impossible");
else
printf(
"%d",x);

//getchar();
return0;
}
开的VS2005写的,显得累赘。。。
找奇数次出现的元素所用的循环可以合并到后来的排序的循环里去的,不过那样,太丑。。。
刚看讲解时以为说的是选择成对字符时可以“左右开弓”?? 但做起来似乎代码很麻烦,所以干脆以左半边为准排序。
分享到:
评论

相关推荐

    《程序员》9期算法擂台“骑士聚会”源代码

    9期的算法擂台栏目聚焦于“骑士聚会”问题,这是一个涉及算法设计与实现的经典挑战。这个挑战源自于数学游戏,通常与图论或组合优化相关,旨在模拟中世纪骑士在棋盘上的排列方式。 "骑士聚会"问题来源于国际象棋,...

    程序员的算法趣题.pdf.zip

    《程序员的算法趣题》是一本专门为IT从业者和有志于进入这个领域的学习者准备的算法书籍。它通过一系列有趣且富有挑战性的题目,旨在帮助读者深入理解和掌握计算机科学中的核心算法,提升解决实际问题的能力。这本书...

    《程序员》第9期智慧擂台题目文件

    第9期的智慧擂台题目文件,无疑是为程序员们提供了一个提升技能、检验自身技术水平的平台。这次的主题聚焦在了技术文档的编写、程序员的基本素养以及通过实际题目来锻炼和展示程序员的解决问题能力。 技术文档是...

    程序员面试经典算法题

    《程序员面试经典算法题》是针对程序员在面试过程中可能会遇到的算法问题进行深入解析的一份资源。这份资料旨在帮助程序员提升算法思维,从而在技术面试中脱颖而出。通过学习和掌握这些经典算法,不仅可以提高编程...

    程序员实用算法+源码(最后1个)

    程序员实用算法+源码,本书一共七个部分全部下载才可正常解压

    程序员算法趣题——随书源码

    《程序员算法趣题——随书源码》是一个与算法相关的学习资源,包含了增井敏克著作《程序员算法趣题》中的实例代码。增井敏克是算法领域知名的专家,他的书籍通常深入浅出,旨在帮助程序员提升算法思维和解决实际问题...

    程序员实用算法.zip

    在IT行业中,算法是程序员的核心技能之一,它们是解决问题和设计高效程序的基础。"程序员实用算法.zip"这个压缩包很可能包含了一系列与编程相关的算法实现、解释或案例,旨在帮助程序员提升这方面的能力。以下是对...

    程序员实用算法书中的源码

    《程序员实用算法书中的源码》是一本专为程序员设计的算法书籍,旨在提升程序员在实际工作中应用算法的能力。该书由(美)Andrew Binstock和John Rex合作撰写,并由陈宗斌等人翻译成中文。书中涵盖了一系列精选的...

    程序员实用算法.pdf

    《程序员实用算法》这本书主要涵盖了计算机科学中程序员经常会遇到的各种算法,这些算法是解决实际问题、优化程序性能的关键。在编程领域,算法就如同工具箱中的各种工具,它们可以帮助程序员高效地处理数据,解决...

    程序员算法大全算法数据结构智力题

    在编程中,我们常常会遇到各种类型的算法,例如排序算法(如冒泡排序、快速排序、归并排序)、搜索算法(如二分查找、广度优先搜索、深度优先搜索)以及图算法(如最短路径算法Dijkstra、最小生成树Prim或Kruskal)...

    程序员面试算法大全

    《程序员面试算法大全》是一本面向准备面试的程序员的重要参考资料,涵盖了广泛的算法和数据结构知识。这本书通过详细的代码实现和解题思路,帮助读者提升在面试中的表现,从而提高获得理想职位的机会。以下是对其中...

    程序员必备算法知识

    在IT行业中,算法是程序员解决问题的关键工具,它们是编程的基础,能够帮助我们高效地处理数据和执行任务。本文档集合中的四个PHP文档深入探讨了程序员应掌握的一些经典算法,这对于提升编程技能至关重要。 首先,...

    《程序员实用算法》(高清全本)

    《程序员实用算法》这本书是为IT从业者,尤其是程序员量身打造的一本算法学习资料。算法在编程领域中占据着至关重要的地位,它们是解决问题、优化程序效率的关键工具。本书旨在帮助读者理解和掌握实用的算法,提升...

    程序员实用算法源码

    程序员实用算法源码兼容VS2008及更高级的版本。在VS2008中可以直接运行,在VS2010中需先进行转换才能运行。 每个项目文件中,具体参数如何设置,是可以从源码的main函数中获得的,具体可以查看main函数中形如“...

    程序员实用算法——sourceCode

    在编程领域,算法是程序员的基石,它们是解决问题和优化计算效率的关键工具。"程序员实用算法——sourceCode"这个主题涵盖了各种在实际开发中经常遇到的算法,通过源代码的形式来展示这些算法的实现。下面将详细介绍...

    程序员实用算法

    数据结构与算法是计算机科学的基础组成部分,对于程序员而言,掌握这些知识对于提升编程能力、解决实际问题以及提高软件开发效率至关重要。数据结构是组织和存储数据的方式,它决定了数据的存取效率和应用范围。而算...

    C++/C程序员面试各种算法,笔试面试无忧

    在面试过程中,面试官可能会询问算法原理、实现细节以及对于特定情况的处理方法,因此掌握这些知识点对于面试C++/C程序员岗位是十分重要的。同时,面试者也应该能够在实际编码中准确无误地使用这些算法解决问题。

    程序员算法大全算法数据结构智力题 C/C++

    在计算机科学中,常见的算法包括排序(如冒泡排序、快速排序、归并排序)、搜索(如二分查找、广度优先搜索、深度优先搜索)、图论(如最短路径算法Dijkstra、拓扑排序)等。学习算法能够训练逻辑思维,提高编程效率...

Global site tag (gtag.js) - Google Analytics