2016-09-10 6 views
-4

enter image description hereJava挿入ソートが正しく機能しない

これはコードのスクリーンショットのリンクです。

私は多くの時間を編集していますが、出力が完全にソートされないたびに編集しています。

+2

助けを求める質問には、試したコードが含まれている必要があります。そして、彼らは適切な問題の記述を含むべきです。少なくとも「[私はどのように良い質問をしますか?]」(http://stackoverflow.com/help/how-to-ask)を少なくともお読みください。 – Seelenvirtuose

+1

サイドノート:ASAPの回答を求めるのはほとんど無礼です。彼らが来るときの答えが来る。すぐに良い答えが欲しいなら、良い質問を書いてください。あなたは...そうではありません。 – GhostCat

答えて

1

あなたの問題は非常に単純です:kあなたのコードの中で頻繁に増えています!

意味:すでにkでループしています。

for (int k=0; k < a.length; k++) { // dont use hardcoded "9" here btw! 

をし、その後、あなたはループ本体内

のk ++ 再びを持っていますので、あなたが得ました。あなたは単にそれをする必要はありません!

意味:あなたのkは、必要以上に速く成長しています。しかし、kが9に達するとループが止まるので、あなたはではありませんあなたの配列のすべての要素を処理しています!

プラス:配列の並べ替えで挿入の並べ替えが機能しない! すべての要素が配置されるまで反復処理を続ける必要があります。あなたは本当にこのアルゴリズムについてもっと勉強し/考えてみたいです。 あなたは、それは私たちではありません!

そして、言われているように、ハードコードされた制限を使用しないでください。配列には10要素が含まれているはずです。そこから、a.lengthだけを使うべきです!それだけではありません:ループカウンターなどには1文字の名前を使用してください。 "a"は配列のかなり悪い名前です。なぜあなたはそれを「数字」と呼んでいませんか?

関連する問題