Beste svaret
Bubblesortering
Bubblesortering er den enkleste sorteringsalgoritmen som fungerer ved å bytte tilstøtende elementer gjentatte ganger hvis de er i feil rekkefølge.
Eksempel: Første pass: ( 5 1 4 2 8) -> ( 1 5 4 2 8), Her sammenligner algoritmen de to første elementene, og bytter siden 5> 1. (1 5 4 2 8) -> (1 4 5 2 8), Bytt siden 5 > 4 (1 4 5 2 8) -> (1 4 2 5 8), Bytt siden 5> 2 (1 4 2 5 8 ) -> (1 4 2 5 8 ), Nå som disse elementene allerede er i orden (8> 5), bytter ikke algoritme dem.
Andre pass: ( 1 4 2 5 8) -> ( 1 4 2 5 8) (1 4 2 5 8) -> (1 2 4 5 8), bytt siden 4> 2 (1 2 4 5 8) -> (1 2 4 5 8) (1 2 4 5 8 ) -> (1 2 4 5 8 ) Nå er matrisen allerede sortert, b ut algoritmen vår vet ikke om den er fullført. Algoritmen trenger ett hele pass uten noe bytte for å vite at det er sortert.
Tredje pass: ( 1 2 4 5 8) -> ( 1 2 4 5 8) (1 2 4 5 8) -> (1 2 4 5 8) (1 2 4 5 8) -> (1 2 4 5 8) (1 2 4 5 8 ) -> (1 2 4 5 8 )
Eksempel
// C program for implementation of Bubble sort
#include
void
*xp, int
*yp)
{
int
temp = *xp;
*xp = *yp;
*yp = temp;
}
// A function to implement bubble sort
void
bubbleSort(int
arr[], int
n)
{
int
i, j;
for
(i = 0; i < n-1; i++)
// Last i elements are already in place
for
(j = 0; j < n-i-1; j++)
if
(arr[j] > arr[j+1])
swap(&arr[j], &arr[j+1]);
}
/* Function to print an array */
void
printArray(int
arr[], int
size)
{
int
i;
for
(i=0; i < size; i++)
printf("\%d ", arr[i]);
printf("n");
}
// Driver program to test above functions
int
main()
{
int
arr[] = {66, 4, 25, 1, 22, 81, 90};
int
n = sizeof(arr)/sizeof(arr[0]);
bubbleSort(arr, n);
printf("Sorted array: \n");
printArray(arr, n);
return
0;
}
Takk.
Svar
For meg er den enkleste sorteringsalgoritmen valgsortering, veldig grunnleggende og forståelig.Når du kjører utvalgssorteringsalgoritme, skal du sammenligne alle verdier med det første elementet. Når verdien du finner er lavere enn det første elementet, vil du endre elementet med den laveste verdien, og det vil fortsette slik.
La meg gi deg et eksempel.
Array => [15,3,22,1,4,14]
min = 15.
- sammenlign med 15, min = 15
- sammenlign med 3, min = 3
- sammenlign med 22, min = 3
- sammenlign med 1, min = 1
- sammenlign med 4, min = 1
- sammenlign med 14, min = 1
Nå har du funnet min (first\_index) -elementet. Du må erstatte det første elementet og min-elementets steder, og fortsett til du kommer til det siste elementet.
Eksempel C Kode:
#include
void printArray(int arr[], int n) {
//use this function to print array
for (int i = 0; i < n; i++)
printf("\%d, ", arr[i]);
}
void sortArray(int arr[], int n) {
int min\_index = 0;
int temp = 0;
for (int i = 0; i < n; i++) {
min\_index = i;
for (int j = i; j < n; j++) {
//compare min index"s element with new j"s element
//if you want descending sort you can change the binary
//operator > to < .
if (arr[min\_index] > arr[j]) min\_index = j;
}
//change min index"s element and i. element
temp = arr[min\_index];
arr[min\_index] = arr[i];
arr[i] = temp;
}
printArray(arr,n);
}
int arr[] = { 100,5,11,1,22,31,4,2,3 }; //initialize array
printArray(arr,9); //print unsorted array
sortArray(arr,9); //sort array then print it
return 0;
}