mirror of
https://github.moeyy.xyz/https://github.com/TheAlgorithms/C.git
synced 2023-10-11 15:56:24 +08:00
Add new sorting algorithm (Cocktail Sort)
This commit is contained in:
parent
63cdc6fc64
commit
89732a2103
73
sorting/Cocktail_Sort.c
Normal file
73
sorting/Cocktail_Sort.c
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#define TRUE 1
|
||||||
|
#define FALSE 0
|
||||||
|
|
||||||
|
void cocktailSort(int arr[], int size)
|
||||||
|
{
|
||||||
|
int i, changed = TRUE, temp, start = 0, end = size - 1;
|
||||||
|
|
||||||
|
while (changed)
|
||||||
|
{
|
||||||
|
changed = FALSE;
|
||||||
|
for (i=start; i<end; i++)
|
||||||
|
{
|
||||||
|
if (arr[i] > arr[i+1])
|
||||||
|
{
|
||||||
|
temp = arr[i];
|
||||||
|
arr[i] = arr[i+1];
|
||||||
|
arr[i+1] = temp;
|
||||||
|
changed = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (changed == FALSE)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
changed = FALSE;
|
||||||
|
|
||||||
|
for (i=end-1; i>=start; i--)
|
||||||
|
{
|
||||||
|
if (arr[i+1] < arr[i])
|
||||||
|
{
|
||||||
|
temp = arr[i+1];
|
||||||
|
arr[i+1] = arr[i];
|
||||||
|
arr[i] = temp;
|
||||||
|
changed = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int i, n;
|
||||||
|
|
||||||
|
printf("Enter the size of the array: ");
|
||||||
|
scanf("%d", &n);
|
||||||
|
int* arr = (int*)malloc(sizeof(int) * n);
|
||||||
|
|
||||||
|
for (i = 0; i < n; i++)
|
||||||
|
{
|
||||||
|
printf("Number #%d: ", i + 1);
|
||||||
|
scanf("%d", &arr[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("You entered: ");
|
||||||
|
for (i=0; i<n; i++)
|
||||||
|
{
|
||||||
|
printf("%d ", arr[i]);
|
||||||
|
}
|
||||||
|
cocktailSort(arr, n);
|
||||||
|
printf("\nSorted array: ");
|
||||||
|
for (i=0; i<n; i++)
|
||||||
|
{
|
||||||
|
printf("%d ", arr[i]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
free(arr);
|
||||||
|
return 0;
|
||||||
|
}
|
@ -1,7 +1,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
int pigeonholeSort(int arr[], int size)
|
void pigeonholeSort(int arr[], int size)
|
||||||
{
|
{
|
||||||
int i, j, min = arr[0], max = arr[0], range;
|
int i, j, min = arr[0], max = arr[0], range;
|
||||||
|
|
||||||
@ -55,7 +55,7 @@ int main()
|
|||||||
scanf("%d", &arr[i]);
|
scanf("%d", &arr[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("You entered: ");
|
printf("You entered: ");
|
||||||
for (i=0; i<n; i++)
|
for (i=0; i<n; i++)
|
||||||
{
|
{
|
||||||
printf("%d ", arr[i]);
|
printf("%d ", arr[i]);
|
||||||
|
Loading…
Reference in New Issue
Block a user