fork download
  1. 何度も申し訳ありません。どうかよろしくお願いします。
  2.  
  3. <ソートアルゴリズムの実装>
  4. テンプレートを使用する
  5.  
  6. 課題:
  7. シェルソートの実装
  8. クイックソート
  9. マージソート
  10. ヒープソート
  11.  
  12. 添付ファイル:
  13. シェルソート
  14. クイックソート
  15. マージソート
  16. ヒープソート
  17.  
  18. 実行例
  19. > sort
  20. データタイプ(1-3)
  21. ランダム:1 昇順:2 降順:3 1
  22. データ数: 10
  23. 比較: 45 回 交換: 20
  24.  
  25. (ソートテンプレート)
  26. #include <stdio.h>
  27. #include <stdlib.h>
  28. #include <malloc.h>
  29.  
  30. void sort(int *data, int n);
  31.  
  32. int compare(int a, int b);
  33.  
  34. void swap(int *d, int a, int b);
  35.  
  36. void initRandData(int *d, int n);
  37.  
  38. void initAscendingData(int *d, int n);
  39.  
  40. void initDescendingData(int *d, int n);
  41.  
  42. void printdata(int *d, int n);
  43.  
  44.  
  45. unsigned long counterSwap;
  46. unsigned long counterComp;
  47.  
  48.  
  49.  
  50.  
  51. void sort(int data[], int n)
  52. {
  53. /* ここにソートプログラムを作成 */
  54. }
  55.  
  56.  
  57.  
  58. int main(void)
  59. {
  60. int *data;
  61. int n;
  62. int i;
  63. int com;
  64. void (* initData[3])(int *d, int x) = {initRandData,
  65. initAscendingData,
  66. initDescendingData };
  67.  
  68. do {
  69. printf("データタイプ(1-3)\n");
  70. printf("ランダム:1 昇順:2 降順:3 ");
  71. scanf("%d", &com);
  72. } while (! (com==0||com==1||com==2||com==3));
  73.  
  74. printf("データ数: ");
  75. scanf("%d", &n);
  76.  
  77. data = (int*) malloc(sizeof(int) *n);
  78. if (com==0) {
  79. for (i=0; i<n; i++) {
  80. scanf("%d", &data[i]);
  81. }
  82. } else {
  83. initData[com-1](data, n);
  84. }
  85.  
  86. #ifdef DEBUG
  87. printdata(data, n);
  88. #endif
  89.  
  90. counterSwap = 0;
  91. counterComp = 0;
  92.  
  93. sort(data, n);
  94.  
  95. #ifdef DEBUG
  96. printdata(data, n);
  97. #endif
  98.  
  99. printf(" 比較: %d 回\n", counterComp);
  100. printf(" 交換: %d 回\n", counterSwap);
  101.  
  102. return 0;
  103. }
  104.  
  105. int compare(int a, int b)
  106. {
  107. counterComp++;
  108. return (a<b);
  109. }
  110.  
  111. void swap(int *d, int a, int b)
  112. {
  113. int tmp;
  114.  
  115. counterSwap++;
  116. tmp = d[a];
  117. d[a] = d[b];
  118. d[b] = tmp;
  119. }
  120.  
  121. void initRandData(int *d, int n)
  122. {
  123. int i, s;
  124. srand(time(NULL));
  125. s=n*10;
  126. for(i=0; i<n; i++) d[i]=rand()%s;
  127. }
  128.  
  129. void initAscendingData(int *d, int n)
  130. {
  131. int i;
  132. for(i=0; i<n; i++) d[i]=i;
  133. }
  134.  
  135. void initDescendingData(int *d, int n)
  136. {
  137. int i;
  138. for(i=0; i<n; i++) d[i]=n-i-1;
  139. }
  140.  
  141. void printdata(int *d, int n)
  142. {
  143. int i;
  144.  
  145. for (i=0; i<n; i++) printf("%d ", d[i]);
  146. printf("\n");
  147. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: illegal character: \12290
??????????????????????????
           ^
Main.java:1: error: illegal character: \12290
??????????????????????????
                         ^
Main.java:3: error: illegal character: \65308
??????????????
^
Main.java:3: error: illegal character: \65310
??????????????
             ^
Main.java:6: error: illegal character: \65306
???
  ^
Main.java:12: error: illegal character: \65306
???????
      ^
Main.java:26: error: illegal character: \35
#include <stdio.h>
^
Main.java:27: error: illegal character: \35
#include <stdlib.h>
^
Main.java:28: error: illegal character: \35
#include <malloc.h>
^
Main.java:32: error: class, interface, or enum expected
int compare(int a, int b);
^
Main.java:34: error: class, interface, or enum expected
void swap(int *d, int a, int b);
^
Main.java:36: error: class, interface, or enum expected
void initRandData(int *d, int n);
^
Main.java:38: error: class, interface, or enum expected
void initAscendingData(int *d, int n);
^
Main.java:40: error: class, interface, or enum expected
void initDescendingData(int *d, int n);
^
Main.java:42: error: class, interface, or enum expected
void printdata(int *d, int n);
^
Main.java:45: error: class, interface, or enum expected
unsigned long counterSwap;
^
Main.java:46: error: class, interface, or enum expected
unsigned long counterComp;
^
Main.java:51: error: class, interface, or enum expected
void sort(int data[], int n)
^
Main.java:61: error: class, interface, or enum expected
	int n;
	^
Main.java:62: error: class, interface, or enum expected
	int i;
	^
Main.java:63: error: class, interface, or enum expected
	int com;
	^
Main.java:64: error: class, interface, or enum expected
	void (* initData[3])(int *d, int x) = {initRandData,
	^
Main.java:68: error: class, interface, or enum expected
	do {
	^
Main.java:70: error: class, interface, or enum expected
		printf("????:1 ??:2 ??:3  ");
		^
Main.java:71: error: class, interface, or enum expected
		scanf("%d", &com);
		^
Main.java:72: error: class, interface, or enum expected
	} while (! (com==0||com==1||com==2||com==3));
	^
Main.java:74: error: class, interface, or enum expected
	printf("????: ");
	^
Main.java:75: error: class, interface, or enum expected
	scanf("%d", &n);
	^
Main.java:77: error: class, interface, or enum expected
	data = (int*) malloc(sizeof(int) *n);
	^
Main.java:78: error: class, interface, or enum expected
	if (com==0) {
	^
Main.java:79: error: class, interface, or enum expected
		for (i=0; i<n; i++) {
		          ^
Main.java:79: error: class, interface, or enum expected
		for (i=0; i<n; i++) {
		               ^
Main.java:81: error: class, interface, or enum expected
		}
		^
Main.java:84: error: class, interface, or enum expected
	}
	^
Main.java:86: error: illegal character: \35
#ifdef DEBUG
^
Main.java:88: error: illegal character: \35
#endif
^
Main.java:90: error: class, interface, or enum expected
	counterSwap = 0;
	^
Main.java:91: error: class, interface, or enum expected
	counterComp = 0;
	^
Main.java:93: error: class, interface, or enum expected
	sort(data, n);
	^
Main.java:95: error: illegal character: \35
#ifdef DEBUG
^
Main.java:95: error: class, interface, or enum expected
#ifdef DEBUG
       ^
Main.java:97: error: illegal character: \35
#endif
^
Main.java:99: error: class, interface, or enum expected
	printf(" ??: %d ?\n", counterComp);
	^
Main.java:100: error: class, interface, or enum expected
	printf(" ??: %d ?\n", counterSwap);
	^
Main.java:102: error: class, interface, or enum expected
	return 0;
	^
Main.java:103: error: class, interface, or enum expected
}
^
Main.java:108: error: class, interface, or enum expected
	return (a<b);
	^
Main.java:109: error: class, interface, or enum expected
}
^
Main.java:115: error: class, interface, or enum expected
	counterSwap++;
	^
Main.java:116: error: class, interface, or enum expected
	tmp = d[a];
	^
Main.java:117: error: class, interface, or enum expected
	d[a] = d[b];
	^
Main.java:118: error: class, interface, or enum expected
	d[b] = tmp;
	^
Main.java:119: error: class, interface, or enum expected
}
^
Main.java:124: error: class, interface, or enum expected
	srand(time(NULL));
	^
Main.java:125: error: class, interface, or enum expected
	s=n*10;
	^
Main.java:126: error: class, interface, or enum expected
	for(i=0; i<n; i++) d[i]=rand()%s;
	^
Main.java:126: error: class, interface, or enum expected
	for(i=0; i<n; i++) d[i]=rand()%s;
	         ^
Main.java:126: error: class, interface, or enum expected
	for(i=0; i<n; i++) d[i]=rand()%s;
	              ^
Main.java:127: error: class, interface, or enum expected
}
^
Main.java:132: error: class, interface, or enum expected
	for(i=0; i<n; i++)  d[i]=i;
	^
Main.java:132: error: class, interface, or enum expected
	for(i=0; i<n; i++)  d[i]=i;
	         ^
Main.java:132: error: class, interface, or enum expected
	for(i=0; i<n; i++)  d[i]=i;
	              ^
Main.java:133: error: class, interface, or enum expected
}
^
Main.java:138: error: class, interface, or enum expected
	for(i=0; i<n; i++)  d[i]=n-i-1;
	^
Main.java:138: error: class, interface, or enum expected
	for(i=0; i<n; i++)  d[i]=n-i-1;
	         ^
Main.java:138: error: class, interface, or enum expected
	for(i=0; i<n; i++)  d[i]=n-i-1;
	              ^
Main.java:139: error: class, interface, or enum expected
}
^
Main.java:145: error: class, interface, or enum expected
	for (i=0; i<n; i++) printf("%d ", d[i]);
	^
Main.java:145: error: class, interface, or enum expected
	for (i=0; i<n; i++) printf("%d ", d[i]);
	          ^
Main.java:145: error: class, interface, or enum expected
	for (i=0; i<n; i++) printf("%d ", d[i]);
	               ^
Main.java:146: error: class, interface, or enum expected
	printf("\n");
	^
Main.java:147: error: class, interface, or enum expected
}
^
72 errors
stdout
Standard output is empty