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