mirror of https://github.com/TheAlgorithms/C
Create shaker_sort.c
This commit is contained in:
parent
40a1c6639a
commit
655328b448
|
@ -0,0 +1,35 @@
|
|||
#include <stdio.h>
|
||||
|
||||
void swap(int *a, int *b){
|
||||
int temp;
|
||||
temp = *a;
|
||||
*a = *b;
|
||||
*b = temp;
|
||||
}
|
||||
void shakersort(int a[], int n)
|
||||
{
|
||||
int p, i;
|
||||
for (p = 1; p <= n / 2; p++)
|
||||
{
|
||||
for (i = p - 1; i < n - p; i++)
|
||||
if (a[i] > a[i+1]){
|
||||
swap(&a[i], &a[i + 1]);
|
||||
}
|
||||
for (i = n - p - 1; i >= p; i--)
|
||||
if (a[i] < a[i-1]){
|
||||
swap(&a[i], &a[i - 1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
int main()
|
||||
{
|
||||
int n;
|
||||
scanf("%d",&n);
|
||||
int arr[n] ,i;
|
||||
for (i = 0 ; i < n; i++)
|
||||
scanf("%d ", &arr[i]);
|
||||
shakersort(arr, n);
|
||||
for (i = 0 ; i < n; i++)
|
||||
printf("%d ", arr[i]);
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue