fork(1) download
  1. // SelectionSort
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. void printA(int a[], int n){
  7. int i;
  8. for(i=0;i<n;i++){
  9. printf("%d ",a[i]);
  10. }
  11. printf("\n");
  12. }
  13.  
  14. void swap(int* a, int* b){
  15. int tmp;
  16. tmp = *a;
  17. *a = *b;
  18. *b = tmp;
  19. }
  20.  
  21. //選択ソート関数
  22. void SelectionSort(int a[], int n){
  23. //ここを書き換える
  24. int i, j, min;
  25.  
  26. for(i = 0; i < n - 1; i++){
  27. min = i; // 最小値のインデックス
  28.  
  29. for(j = i + 1; j < n; j++){
  30. if(a[j] < a[min]){
  31. min = j;
  32. }
  33. }
  34.  
  35. // 最小値を先頭に交換
  36. if(min != i){
  37. swap(&a[i], &a[min]);
  38. }
  39. }
  40. }
  41.  
  42. int main(void){
  43. int n,i;
  44. int *v;
  45. scanf("%d",&n);
  46. v = (int*)malloc(sizeof(int)*n);
  47. if(v==NULL){
  48. printf("ERROR\n");
  49. return -1;
  50. }
  51. for(i=0;i<n;i++){
  52. scanf("%d",&v[i]);
  53. }
  54. SelectionSort(v,n);
  55. printA(v,n);
  56. free(v);
  57. return 0;
  58. }
  59.  
Success #stdin #stdout 0s 5312KB
stdin
30
21 55 5 13 8 2 34 3
stdout
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 3 5 8 13 21 34 55