Bąbelkowe sortowanie danych w tablicy

0

Witam

Mam napisać program w którym użytkownik deklaruje wielkość dynamicznej tablicy(float), następnie wpisuje wartości do tej tablicy a na końcu ma zostać wyświetlona tablica po uprzednim bąbelkowym sortowaniu. Program napisałem do momentu sortowania ponieważ nie za bardzo wiem jak to wykonać.

#include <stdio.h>
#include <stdlib.h>

main()
{
float input,i;
    printf("Enter the size of array:\n");
    scanf("%d", &input);
    printf("%d",input);
float *tab = (float*) malloc(input*sizeof(float));
   printf("\n Enter values to store in array one by one:");
    for(i=0;i<input;i++)
     {
         scanf("%d",&tab[i]);
     }
   printf("\n The values in array are:");
    for(i=0;i<input;i++)
     {
         printf("\n %d",tab[i]);
      }
return 0;
}
 

Za odpowiedzi z góry dziękuje

0

Bardzo dobrze wytłumaczony bubble sort z przykładami:
http://edu.i-lo.tarnow.pl/inf/alg/003_sort/0006.php

0

Tylko w tych przykładach brakuje języka C

0

@michal40m, i żadnego C podobnego tam nie widzisz czy może bez gotowca ani rusz?

1

@michal40m dlaczego nie zwalniasz pamięci?! Kiedyś miałam coś tego rodzaju, lecz nie wiem czy w takim przypadku warto tak dzielić na funkcje.

#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>

void arr_bubblesort(float *array, size_t length) {
	float temp;
	size_t i,j;
	for (i=0; i<length; i++) {
		for (j=0; j<length-1-i; j++) {
			if (array[j]>array[j+1]) {
				temp = array[j+1];
				array[j+1] = array[j];
				array[j] = temp;
			}
		}
	}
}

void arr_getsize(size_t *size) {
	printf("Enter the size of array: ");
	scanf("%zu",size);
}

void arr_fill(float *array, size_t size) {
	size_t i;
	printf("Enter values to store in array one by one\n");
	for(i=0;i<size;i++)
		scanf("%f",&array[i]);
}

void arr_print(float *array, size_t size) {
	size_t i;
	for(i=0;i<size;i++)
		printf("%f ",array[i]);
	printf("\n");
}

int main() {
	float *array;
	size_t size;
	arr_getsize(&size);
	array = (float *)malloc(size * sizeof(*array));
	arr_fill(array,size);
	arr_bubblesort(array,size);
	arr_print(array,size);
	free(array);	/* pamietamy o zwolnieniu pamieci! */
	return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1