質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1590閲覧

ソートアルゴリズム カウントソートについて

sakazuki0111

総合スコア7

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/06/03 01:09

ソートアルゴリズムを作成しようとしているのですが、結果を見る限り実行されないようです。どこか間違っているところはありませんか。教えてください。よろしくお願いします。

Python

1# 乱数モジュールをインポート 2import random 3 4# ランダムなリストを作成する. 5# 重複しない乱数を取得する.(このリストが並べ替える初期値) 6a=random.sample(range(1,101), 100); 7print(a) 8len(a) 9# モジュールのインポート 10import time # "time"モジュールのインポート 11#ソートの関数を定義する 12def Count(a): 13 max_num = max(a) 14 min_num = min(a) 15 Count = [0] * (max_num - min_num + 1) 16 for ele in a: 17 Count[ele - min_num] += 1 18 19 20#ソートを実行して計算時間を測定する. 21start=time.clock() # 計算開始時刻を取得 22Count(a) # ソートの実行 23end=time.clock() # 計算終了時刻を取得 24 25print('ソート結果:a = {0}'.format(a)) # 計算結果の出力 26print('計算時間:{0}'.format(end-start)) # 計算時間の出力

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2020/06/03 01:11

数え上げの部分だけで、肝心のソートが実装されていないようですが。
ForestSeo

2020/06/03 01:11

a=random.sample(range(1,101), 100); の;いらなくないですか?
episteme

2020/06/03 01:27

度数分布を求めるとこまでしかやってませんなぁ...
guest

回答1

0

ベストアンサー

Count(a)を実行しただけでは変数aは何も変わりません。

Python

1def Count(a): 2 max_num = max(a) 3 min_num = min(a) 4 Count = [0] * (max_num - min_num + 1) 5 for ele in a: 6 Count[ele - min_num] += 1 7 return Count 8print('ソート結果:a = {0}'.format(Count(a))) 9```返り値を設定する。

投稿2020/06/03 01:18

編集2020/06/03 03:46
ForestSeo

総合スコア2720

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakazuki0111

2020/06/03 01:53

ありがとうございました!
episteme

2020/06/03 03:00

え? ソートしてなくても解決?
dodox86

2020/06/03 03:01

?? 質問自体は、ソートもしていなければ、そのソートの実行結果も出力されないという2つの問題があるのではないですか? 本回答はソートした結果ではなく、Countの結果のみ出力しているように見えます。
dodox86

2020/06/03 03:03

。。。まぁ、質問者さんがいいのであれば、いいのか。(よくない)
LouiS0616

2020/06/03 03:20 編集

a = xxx と表示しているのに、aの値は何ら書き換わっていないのですよね。 global化しても何も変わらないです。(というか、aは元からグローバル変数)
ForestSeo

2020/06/03 03:46 編集

>LouiS0616 Count関数内でglobal宣言した変数に結果を入れるということを言いたかったです。aをglobal化するのではなく returnされてなかったので、回答しただけで..
LouiS0616

2020/06/03 03:45

ソート結果をreturnすれば良いでしょう。globalを使わずとも。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問