NYOJ233 Sort it
烂题。冒泡可行但违背了原题的意思。
附ac代码:
#include <stdio.h>
#include <stdlib.h>
int main(){
int n, *a, count, i, j, t;
while(scanf("%d", &n) == 1){
i = count = 0;
a = (int *)malloc(sizeof(int) * n);
while(i < n)
scanf("%d", &a[i++]);
for(i = 0; i < n - 1; ++i)
for(j = i + 1; j < n; ++j)
if(a[i] > a[j]){
t = a[i], a[i] = a[j], a[j] = t;
++count;
}
printf("%d\n", count);
free(a);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(){
int n, *a, count, i, j, t;
while(scanf("%d", &n) == 1){
i = count = 0;
a = (int *)malloc(sizeof(int) * n);
while(i != n)
scanf("%d", &a[i++]);
while(1){
for(i = j = 0; i != n - 1; ++i){
if(a[i] > a[i + 1]){
++j;
t = a[i]; a[i] = a[i + 1]; a[i + 1] = t;
}
if(j == 0) break;
count += j;
}
break;
}
printf("%d\n", count);
free(a);
}
return 0;
}
浙公网安备 33010602011771号