#include<stdio.h>

void sort_b(int data1[], int n) 
{
    int i, j, tmp;
    int count_b = 0;
	for(i = 0; i < n; i++){
		for(j = n - 1; j > i; j--){
			if(data1[j] < data1[j-1]){
				tmp = data1[j];
				data1[j] = data1[j-1];
				data1[j-1] = tmp;
				count_b++;
			}
		}
	}

	for(i = 0; i < n; i++)
		printf("%d\n",data1[i]);
	printf("バブルソートの交換回数 -> %d回\n\n",count_b);
}

void sort_s(int data2[], int n)
{
    int i, j, tmp;
	int count_s = 0;

	for(i = 0; i < n; i++){
		int max = i;
		for(j = i+1; j < n; j++)
			if(data2[j] > data2[max])max = j;

			tmp = data2[i];
			data2[i] = data2[max];
			data2[max] = tmp;
			count_s++;
	}

	for(i = 0; i < n; i++)
		printf("%d\n",data2[i]);
	printf("選択ソートの交換回数 -> %d回\n",count_s);

}

int main()
{
   FILE *fp;
   int data[20], i = 0;

   fp = fopen("data.txt","r");
   if(fp == NULL){
	   puts("open error!!");
	   return -1;
   }

   while(fscanf(fp,"%d",&data[i]) != EOF)i++;

   sort_b(data,i);
   sort_s(data,i);

   fclose(fp);
   
   return 0;
}
