カレンダー
12 | 2025/01 | 02 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
最新記事
(01/30)
(01/18)
(12/16)
(12/12)
(11/25)
(11/25)
(11/24)
(11/24)
(11/22)
(11/17)
最新コメント
[12/25 日没]
[11/15 無色大師]
[11/12 無色大師]
[11/11 無色大師]
[11/08 無色大師]
リンク
新刊カレンダー
ブログ内検索
プロフィール
HN:
Nina.A
性別:
男性
趣味:
麻雀、ラノベ、漫画
自己紹介:
MJ4や天鳳等でよく麻雀やってます。もし会ったらよろしくです。
ブログは単なるメモ帳となる予定。
ブログは単なるメモ帳となる予定。
カウンタ
C/C++勉強中の大学生雑記
2025/01/31
06:10:06
2008/11/03
13:37:38
よく使うクイックソートのプログラムを一応張っておく。もう憶えたけど念のため。
void QuickSort(int data[], const int low, const int high){ if(low < high){ // ピボットの決定 int x = (data[low] + data[high] + data[(low+high)/2])/3; int left = low - 1, right = high + 1; while(left <= right){ while(data[++left] < x); while(data[--right] > x); if(left < right) Swap(&data[left], &data[right]); } QuickSort(data, low, right); QuickSort(data, left, high); } }アルゴリズムは「クイックソート:アルゴリズム」に分かりやすい説明がある。
C++ならSTLのalgorithmを利用したほうが早い。
#include <algorithm> int main(){ int array[10] = { 1, 6, 4, 3, 5, 9, 8, 2, 7, 0}; std::sort(array, array+10); for(int i = 0; i < 10; ++i){ std::cout << array[i] << ", "; } std::cout << std::endl; return 0; }
ちなみに、降順にソートするには、
sort(array, array+10, greater<int>());のようにすればいいらしい(参考)。
PR
この記事にコメントする