私はC言語初心者で、今本などをみながら独学で学んでいます。
配列の値を小さい順に並べたいのですがうまくいきません・・・プログラムは以下のようにしました。
#include <stdio.h>
int main(void){
int ten[5] = {5,1,4,2,3};
int i,j,hako,a = 1,k = 1;
for(i = 0;i <= 3;i++){
if(i == 2){
k++;}
if(i == 3){
k = k + 1;}
for(j = 4;j > a;j--){
if(ten[i] > ten[k]){
hako = ten[i];
ten[i] = ten[k];
ten[k] = hako;}
k++;}
a++;
k = k - 3;
}
for(i = 0;i < 5;i++){
printf("%d\n",ten[i]);}
return 0;}
こうしたらよいなどヒントでもお願いしますm(__)m
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
ソートの手法はたくさんあります。
キーワードだけ挙げますが選択ソート、バブルソート、単純挿入ソート、コームソート、シェルソート、
クイックソート、マージソート、ヒープソート、
基数ソート、ビンソート、などなど。
#通称「バカソート(bogosort)」なんてもあったりしますが
#2 さんが説明で挙げているのはバブルソートではありません。
バブルソートは隣り合った要素同士で比較を行いますが、
#2の例はそうなっていません。
適当なソートの手順を言葉で説明すると(#2のでもいいんですけど)、
配列要素が5個だったとして、
・0~4番目で一番小さな要素を見つけて、それと0番目を交換する
・1~4番目で一番小さな要素を見つけて、それと1番目を交換する
・2~4番目で一番小さな要素を見つけて、それと2番目を交換する
・3~4番目で一番小さな要素を見つけて、それと3番目を交換する
というのを、二重ループで組むのが分かりやすいんじゃないかと。
Cによるバブルソートの例を参考URLに挙げておきます。
もろに答えになっているので、参照するときはそのつもりで。
参考URL:http://www1.cts.ne.jp/~clab/hsample/Sort/Sort1.h …
No.2
- 回答日時:
惜しい。
近い所まで来てるんですが。5つの要素のソートの基本は、
1番目と、2~5番目を順に比べ、1番目が大きい場合は入れ換える。
2番目と、3~5番目を順に比べ、2番目が大きい場合は入れ換える。
3番目と、4、5番目を順に比べ、3番目が大きい場合は入れ換える。
4番目と、5番目を比べ、4番目が大きい場合は入れ換える。
です。
比較と入れ換えをするたびに、一番小さい値が配列の前の方に泡のように浮き上がって来るので、この方法のソートを「バブルソート(泡の並び替え)」と呼びます。
for文で書くと
for (i = 0;i < (5-1);i++) { /* 1番目から最後の1つ手前まで */
for (j = i + 1;j < 5;j++) { /* iの次から最後まで */
if (ten[i] > ten[j]) {
hako = ten[i];
ten[i] = ten[j];
ten[j] = hako;
}
}
}
となります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jsで、配列内の文章を改行する際どのようにすればいいですか。 3 2022/07/05 20:40
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript javascriptでif文と配列を組み合わせて運賃プログラムを完成させたいです。 1 2022/07/03 14:20
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- 英語 英語の書き換えの質問です。 彼らが結婚して10年になる。を4つに書き換えるとしたら、 They go 2 2023/05/17 21:15
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA基本構文の作り方 2列の...
-
C# DataGridView のヘッダーセ...
-
配列の問題
-
VB.net データセットからのCSV...
-
C言語・要素除去
-
リスト構造のソートで悩んでま...
-
Excelですべての組合せ(重複組...
-
C言語のCSV形式からのソート
-
Excel2010 /VBA ユーザー設定リ...
-
C言語でリストのソートについて...
-
C言語でアナグラムを求めるプロ...
-
ブック.csvを開かずに他のブッ...
-
Fortran77で多次元配列を並び替...
-
jqgrid で 2から3 階層以上の j...
-
構造体配列の並べ替え
-
部分和問題がわかりません。
-
System.IO.Directory.GetFiles...
-
マクロのコードを知りたい。値...
-
マクロ ソートを組み込みたい
-
DataGridViewの複数列を連動し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
VB.NETでファイル名順にファイ...
-
ファイル名「1.jpg ~10.jpg~...
-
リスト構造のソートで悩んでま...
-
excel VBA の条件をつけての列...
-
C# DataGridView のヘッダーセ...
-
DataGridViewの複数列を連動し...
-
文字列をソートする方法
-
C言語・要素除去
-
C# DataTableの行をソートしてD...
-
Excelですべての組合せ(重複組...
-
VBA基本構文の作り方 2列の...
-
列のどこをクリックしてもソー...
-
excel VBA リストビューの行...
-
あるディレクトリ内のファイル...
-
コレクションの数値をSortで並...
-
数字文字列のソート方法
-
VBScriptで重複レコードを削除...
-
2次元配列を複数項目でソートし...
-
10個の整数を入力して小さい順...
おすすめ情報