Number / 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
ソートのロジックは問わない(一般的と思われるものを採用)
$ ./test [before] 1 : kitchen 2 : bowl 3 : mixer 4 : knife 5 : cup [after] 1 : bowl 2 : cup 3 : kitchen 4 : knife 5 : mixer $
#include <stdio.h> #include <stdlib.h> /* qsort */ #include <string.h> /* strcmp */ #define LENGTH(ARRAY, TYPE) sizeof(ARRAY) / sizeof(TYPE) /* 一覧表示 */ void print_array(char * * array, int size) { int i; for (i = 0; i < size; i++) { printf("%d : %s\n", i+1, array[i]); } } /* 比較関数 */ int pstrcmp(const void * a, const void * b) { return strcmp(*(const char * *)a, *(const char * *)b); } int main() { int i; /* 文字列の配列 */ char * array[] = {"kitchen", "bowl", "mixer", "knife", "cup"}; /* 配列を一覧表示 */ printf("[before]\n"); print_array(array, LENGTH(array, char *)); /* クイックソート */ qsort(array, LENGTH(array, char *), sizeof(char *), pstrcmp); /* ソート後の配列を一覧表示 */ printf("[after]\n"); print_array(array, LENGTH(array, char *)); return 0; }
#include <iostream> #include <string> #include <vector> #include <algorithm> // sort // 一覧表示 void print_array(const std::vector<std::string> array) { std::vector<std::string>::size_type i; for (i = 0; i < array.size(); i++) { std::cout << i+1 << " : " << array[i] << std::endl; } } int main() { std::vector<std::string>::size_type i; // 文字列の配列 std::vector<std::string> array; array.push_back("kitchen"); array.push_back("bowl"); array.push_back("mixer"); array.push_back("knife"); array.push_back("cup"); // 配列を一覧表示 std::cout << "[before]" << std::endl; print_array(array); // ソート sort(array.begin(), array.end()); // ソート後の配列を一覧表示 std::cout << "[after]" << std::endl; print_array(array); return 0; }
import java.util.*; // List, ArrayList, Collections class Main { private static void printArray(List array) { for (int i = 0; i < array.size(); i++) { System.out.println((i+1) + " : " + array.get(i)); } } public static void main(String[] args) { // 文字列の配列 List array = new ArrayList(); array.add("kitchen"); array.add("bowl"); array.add("mixer"); array.add("knife"); array.add("cup"); // 配列を一覧表示 System.out.println("[before]"); printArray(array); // ソート Collections.sort(array); // ソート後の配列を一覧表示 System.out.println("[after]"); printArray(array); } }
# 一覧表示 sub print_array { my $array = shift; for (my $i = 0; $i < @{$array}; $i++) { printf"%d : %s\n", $i+1, $array->[$i]; } } # 文字列の配列 my @array = ("kitchen", "bowl", "mixer", "knife", "cup"); # 配列を一覧表示 print"[before]\n"; print_array(\@array); # ソート(文字列として) @array = sort { $a cmp $b } @array; # ソート後の配列を一覧表示 print"[after]\n"; print_array(\@array);
# 定義追加 (配列の一覧表示) class Array def print i = 1 each do |s| puts "#{i} : " + s i += 1 end end end # 文字列の配列 array = ["kitchen", "bowl", "mixer", "knife", "cup"] # 配列を一覧表示 puts "[before]" array.print # ソート(文字列として) array.sort! # ソート後の配列を一覧表示 puts "[after]" array.print
最終更新日 : 2004.08.23
Number / 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
copyright 2000-2005
ARGIUS project