<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JugglerShu.Net &#187; Algorithm</title>
	<atom:link href="http://programming.jugglershu.net/wp/?cat=77&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://programming.jugglershu.net/wp</link>
	<description>Nothing But Programming</description>
	<lastBuildDate>Wed, 15 Apr 2020 08:11:15 +0000</lastBuildDate>
	<language>ja</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>HeapSort (C++ Template関数実装)</title>
		<link>http://programming.jugglershu.net/wp/?p=550</link>
		<comments>http://programming.jugglershu.net/wp/?p=550#comments</comments>
		<pubDate>Tue, 16 Aug 2011 16:42:00 +0000</pubDate>
		<dc:creator><![CDATA[shu]]></dc:creator>
				<category><![CDATA[Algorithm]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[HeapSort]]></category>

		<guid isPermaLink="false">http://programming.jugglershu.net/wp/?p=550</guid>
		<description><![CDATA[久しぶりに、プログラミング。今日はいままで自分で書いたことなかったヒープソート。 &#60;code&#62; &#60;br&#62;#ifndef __HEAPSORT_H__ &#60;br&#62;#define __HEAPSORT_H__ &#60;br&#62;&#60;br&#62;template &#60;typename t&#62;&#60;br&#62;void MaxHeapify( T* tar <a class="more-link" href="http://programming.jugglershu.net/wp/?p=550">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>久しぶりに、プログラミング。<br />今日はいままで自分で書いたことなかったヒープソート。</p>
<pre>&lt;code&gt;
&lt;br&gt;#ifndef __HEAPSORT_H__
&lt;br&gt;#define __HEAPSORT_H__
&lt;br&gt;&lt;br&gt;template &lt;typename t&gt;&lt;br&gt;void MaxHeapify( T* target, unsigned int index , unsigned int length) {
&lt;br&gt;	unsigned int l = index	unsigned int r = (index	unsigned int max = index;
&lt;br&gt;	if( l 		max = l;
&lt;br&gt;	}
&lt;br&gt;	if( r 		max = r;
&lt;br&gt;	}
&lt;br&gt;	if( index != max ){
&lt;br&gt;		T tmp = target[index];
&lt;br&gt;		target[index] = target[max];
&lt;br&gt;		target[max] = tmp;
&lt;br&gt;		MaxHeapify( target, max, length );	
&lt;br&gt;	}
&lt;br&gt;&lt;br&gt;	return;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;template &lt;typename t&gt;&lt;br&gt;void BuildMaxHeap( T* target, unsigned int length ){
&lt;br&gt;	for( unsigned int i = (length-1)/2; true ; i-- ){
&lt;br&gt;		MaxHeapify( target, i, length );
&lt;br&gt;		if( 0 == i ){
&lt;br&gt;			break;
&lt;br&gt;		}
&lt;br&gt;	}
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;template &lt;typename t&gt;&lt;br&gt;void HeapSort( T* target, unsigned int length){
&lt;br&gt;	BuildMaxHeap( target , length );
&lt;br&gt;	while(length != 0 ){
&lt;br&gt;		T tmp = target[length-1]; 
&lt;br&gt;		target[length-1] = target[0];
&lt;br&gt;		target[0] = tmp;
&lt;br&gt;		length--;
&lt;br&gt;		MaxHeapify(target, 0, length );
&lt;br&gt;	}
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#endif
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/typename&gt;&lt;/typename&gt;&lt;/typename&gt;&lt;/code&gt;</pre>
<p>includeしてから次ように使う。</p>
<pre>&lt;code&gt;
&lt;br&gt;unsigned char buf[] = {5,7,10,8,11};
&lt;br&gt;HeapSort( buf, 5 );
&lt;br&gt;//ここでbuf内はソート済み。
&lt;br&gt;&lt;/code&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://programming.jugglershu.net/wp/?feed=rss2&#038;p=550</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>パズル</title>
		<link>http://programming.jugglershu.net/wp/?p=583</link>
		<comments>http://programming.jugglershu.net/wp/?p=583#comments</comments>
		<pubDate>Sat, 21 Aug 2010 14:24:00 +0000</pubDate>
		<dc:creator><![CDATA[shu]]></dc:creator>
				<category><![CDATA[Algorithm]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Free Lectures]]></category>

		<guid isPermaLink="false">http://programming.jugglershu.net/wp/?p=583</guid>
		<description><![CDATA[ヘルニアで寝込んでしまった。早１か月。いまだに10分以上立ったり座ったりはできない。つらい・・・。 まあ、そんなことを言っていてもどうもならないし、病院に行ってはいるので、そこで言われるようにするしかないということで、勉強をしようと思って、本なりビデオなりを見ている。 そんなとき、以前にFacebookの採用情報欄にパズルが載っていたのを思い出した。プログラミングの問題が載っていて、それを解いて送 <a class="more-link" href="http://programming.jugglershu.net/wp/?p=583">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>ヘルニアで寝込んでしまった。早１か月。いまだに10分以上立ったり座ったりはできない。<br />つらい・・・。</p>
<p>まあ、そんなことを言っていてもどうもならないし、病院に行ってはいるので、そこで言われるようにするしかないということで、勉強をしようと思って、本なりビデオなりを見ている。</p>
<p>そんなとき、以前にFacebookの採用情報欄にパズルが載っていたのを思い出した。プログラミングの問題が載っていて、それを解いて送ると、まあ、採用に少しは考慮してくれるみたいな感じのやつ。<br />ただし、結構難しい。</p>
<p>というわけで、今回はこれをやってみることにした。<br />http://www.facebook.com/careers/puzzles.php#!/careers/puzzles.php?puzzle_id=8<br />Peak Trafficという問題。</p>
<p>いろいろアルゴリズムなどを調べながらやった。<br />今回はちょっと１日当たりパソコンを触っていられる時間も限られているので、２週間ぐらいかけてちょっとづつ調べたり、プログラム書いたりして完成させた。</p>
<p>Facebookにこのトピックに関しての掲示板があったのでそこも参考にした。すでに解いている人が、テスト用データやどのくらい処理に時間がかかったかなどを載せている。<br />http://www.facebook.com/careers/puzzles.php#!/topic.php?uid=15325934266&#038;topic=6943</p>
<p>とりあえず、今日Facebookに送ったところ、正解とのこと。扱ったことのないデータ構造やアルゴリズムだったのでそれだけでもかなり勉強になった。</p>
<p>ただ、何日か前に一応答えを出せるプログラムは書いたのだけれど遅いのが気になって少し何とかならないかと挑戦したけど、だめだった。<br />さっきの掲示板に投稿している人は、あるテストデータ（60MB程度）を処理するのにPythonで書いて、10秒以内だそうだ。ちなみに僕のはRubyで書いて6分；；。お話になりません。</p>
<p>どうしたらいいんだろうと考えたけど、だめだった。まだまだ考えられる余地はあるので、まだがんばる。<br />PythonとRubyの差も多少はありそうだが、そんなレベルの違いじゃないな。</p>
<p>ちなみに、そんなときに出会ったのが以下のレクチャー<br />（これ自体はこのとはの直接の答えではないけど、何か得られるものがないかと思って見た。）<br />この前のMITの授業といい、こんなのが見られるなんて何て素晴らしいんだ。<br />ほかにもUCBerkleyのStructure and Interpretation of Computer Programを使った授業もYouTubeで見られる。<br />この辺は、どこかのページにテキストブックとともにまとめておく価値がありそうだ。</p>
]]></content:encoded>
			<wfw:commentRss>http://programming.jugglershu.net/wp/?feed=rss2&#038;p=583</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>久しぶりの授業</title>
		<link>http://programming.jugglershu.net/wp/?p=588</link>
		<comments>http://programming.jugglershu.net/wp/?p=588#comments</comments>
		<pubDate>Thu, 15 Jul 2010 17:02:00 +0000</pubDate>
		<dc:creator><![CDATA[shu]]></dc:creator>
				<category><![CDATA[Algorithm]]></category>
		<category><![CDATA[Free Lectures]]></category>
		<category><![CDATA[Mathematics]]></category>

		<guid isPermaLink="false">http://programming.jugglershu.net/wp/?p=588</guid>
		<description><![CDATA[今日は会社から早めに帰れたので受講。この前見つけたアルゴリズムのやつ うーん、すばらしい。勢い余って線形代数も受講 これまたすばらしい。英語なのに大学の時に受けた授業より分かりやすいってどういうことだ。まあ、まだ簡単な内容だからかもしれないけど。 これからも続けて受けていきたい。]]></description>
				<content:encoded><![CDATA[<p>今日は会社から早めに帰れたので受講。<br />この前見つけたアルゴリズムのやつ</p>
<p>うーん、すばらしい。勢い余って線形代数も受講</p>
<p>これまたすばらしい。英語なのに大学の時に受けた授業より分かりやすいってどういうことだ。まあ、まだ簡単な内容だからかもしれないけど。</p>
<p>これからも続けて受けていきたい。</p>
]]></content:encoded>
			<wfw:commentRss>http://programming.jugglershu.net/wp/?feed=rss2&#038;p=588</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
