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 <stdlib.h>
|
||||
|
||||
int pigeonholeSort(int arr[], int size)
|
||||
void pigeonholeSort(int arr[], int size)
|
||||
{
|
||||
int i, j, min = arr[0], max = arr[0], range;
|
||||
|
||||
@ -55,7 +55,7 @@ int main()
|
||||
scanf("%d", &arr[i]);
|
||||
}
|
||||
|
||||
printf("You entered: ");
|
||||
printf("You entered: ");
|
||||
for (i=0; i<n; i++)
|
||||
{
|
||||
printf("%d ", arr[i]);
|
||||
|
Loading…
Reference in New Issue
Block a user