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