Skip to content

Commit

Permalink
Code improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
HarshPanchal18 committed Dec 5, 2023
1 parent 4557738 commit d429d7e
Show file tree
Hide file tree
Showing 15 changed files with 172 additions and 94 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.exe
23 changes: 23 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"files.associations": {
"BeadSort.C": "cpp",
"BubbleSort.C": "cpp",
"CocktailSort.C": "cpp",
"CockTailSort2.C": "cpp",
"GnomeSort.C": "cpp",
"HeapSort2.C": "cpp",
"InsertionSort.C": "cpp",
"MatrixSort.C": "cpp",
"Merge2SortedArray.C": "cpp",
"MergeSort2.C": "cpp",
"MergeSort3.C": "cpp",
"MergeSort4.C": "cpp",
"OddEvenSort.C": "cpp",
"PanCakeSort.C": "cpp",
"PigeonHoleSort.C": "cpp",
"QuickSort.C": "cpp",
"QuickSort2.C": "cpp",
"SelectionSort.C": "cpp",
"ShellSort.C": "cpp"
}
}
12 changes: 6 additions & 6 deletions C/BogoSort.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,16 @@

int isSorted(int *a, int n)
{
while (--n >= 1)
if (a[n] < a[n - 1])
while (--n >= 1) // Loop through all of the elements
if (a[n] < a[n - 1]) // and compare them to each other until it finds one that's less than another element.
return 0;
return 1;
}

void shuffle(int *a, int n)
{
for (int i = 0; i < n; i++)
{
{ // Shuffle the values using random number of element.
int t = a[i];
int temp = rand() % n;
a[i] = a[temp];
Expand All @@ -43,14 +43,14 @@ int main(void)
int n;
printf("\nEnter the number of elements: ");
scanf("%d",&n);

int no[n];
printf("\nEnter %d elements:\n",n);
for (int i = 0; i < n; i++)
scanf("%d", &no[i]);

BogoSort(no, n);

printf("\nSorted list:\n");
for (int i = 0; i < n; i++)
printf("%d ", no[i]);
Expand Down
2 changes: 2 additions & 0 deletions C/BubbleSort.C
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ int main(void)
int arr[MAX], i, j, k, temp, n, x;
printf("Enter the total number of elements: ");
scanf("%d", &n);

for (i = 0; i < n; i++)
{
printf("\nEnter element %d: ", i + 1);
Expand Down Expand Up @@ -43,5 +44,6 @@ int main(void)
printf("\nSorted list is: \n");
for (i = 0; i < n; i++)
printf("%d ", arr[i]);

getch();
}
22 changes: 14 additions & 8 deletions C/CocktailSort.C
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
#include <stdio.h>
#include <conio.h>

void Swap(int *a, int *b)
{
/*int temp = *a;
*a = *b;
*b = temp;*/
*a = (*a + *b) - (*b = *a);
}

int main(void)
{
int c, no;
Expand All @@ -16,26 +24,24 @@ int main(void)

do
{
for (int i = 0; i < n - 1; i++)
for (int i = 0; i < n - 1; i++) // Go forward
{
if (data[i] > data[i + 1])
{
data[i] = data[i] + data[i + 1];
data[i + 1] = data[i] - data[i + 1];
data[i] = data[i] - data[i + 1];
Swap(&data[i], &data[i + 1]);
}
}
n--;
for (int i = no, c = 0; i > no; i--)

for (int i = no, c = 0; i > no; i--) // Go backward
{
if (data[i] < data[i + 1])
{
data[i] = data[i] + data[i - 1];
data[i - 1] = data[i] - data[i - 1];
data[i] = data[i] - data[i - 1];
Swap(&data[i], &data[i + 1]);
}
}
c++;

} while (n != 0 && c != 0);

printf("\nThe sorted elements are: ");
Expand Down
4 changes: 2 additions & 2 deletions C/GnomeSort.C
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@
int main(void)
{
int i, no;
printf("\nEnter the number of elements(MAXIMUM %d): ", MAX);
printf("\nEnter the number of elements: ");
scanf("%d", &no);
int a[no];

printf("\nEnter %d elements: \n", no);
for (i = 0; i < no; i++)
scanf("%d", &a[i]);
Expand Down
116 changes: 61 additions & 55 deletions C/HeapSort2.C
Original file line number Diff line number Diff line change
@@ -1,87 +1,93 @@
#include<stdio.h>
#include<stdlib.h>

//Created in College library (March 5th)

void heapsort(int list[],int n) {
int step=1;
for(int k=n; k>=2; k--) {
int temp=list[1];
list[1]=list[k];
list[k]=temp;
int i=1;
int value =list[1];
int j=2;

if((j+1)<k)
if(list[j+1]>list[j])
#include <stdio.h>
#include <stdlib.h>

// Created in College library (March 5th)

void heapsort(int list[], int n)
{
int step = 1;
for (int k = n; k >= 2; k--)
{
int temp = list[1];
list[1] = list[k];
list[k] = temp;
int i = 1;
int value = list[1];
int j = 2;

if ((j + 1) < k)
if (list[j + 1] > list[j])
j++;

while((j<=(k-1)) && (list[j]>value))
{
list[i]=list[j];
i=j;
j=2*i;
while ((j <= (k - 1)) && (list[j] > value))
{
list[i] = list[j];
i = j;
j = 2 * i;

if((j+1)<k)
if(list[j+1]>list[j])
if ((j + 1) < k)
if (list[j + 1] > list[j])
j++;
else if(j>n)
j=n;
else if (j > n)
j = n;

list[i]=value;
list[i] = value;
}

printf("\nStep = %d ",step);
printf("\nStep = %d ", step);
step++;
for(int p=1; p<=n; p++)
printf(" %d",list[p]);
for (int p = 1; p <= n; p++)
printf(" %d", list[p]);
}

}

void createHeap(int list[],int n) {
for(int k=2; k<=n; k++)
void createHeap(int list[], int n)
{
for (int k = 2; k <= n; k++)
{
int i=k;
int temp=list[k];
int j=i/2;
int i = k;
int temp = list[k];
int j = i / 2;

while((i>1) && (temp>list[j]))
while ((i > 1) && (temp > list[j]))
{
list[i]=list[j];
i=j;
j=i/2;
if(j<1)
j=1;
list[i] = list[j];
i = j;
j = i / 2;
if (j < 1)
j = 1;
}
list[i]=temp;
list[i] = temp;
}
}

void display(int list[],int n) {
for(int i=1; i<=n; i++)
printf(" %d",list[i]);
void display(int list[], int n)
{
for (int i = 1; i <= n; i++)
printf(" %d", list[i]);
}

int main(void) {
int main(void)
{
int list[20];
int n;
printf("enter the size of the list: ");
scanf("%d",&n);
scanf("%d", &n);

for (int i = 1; i <= n; i++)
list[i] = rand() % 100;

for(int i=1; i<=n; i++)
list[i]=rand()%100;
printf("\nlist:\n");
display(list,n);
display(list, n);

createHeap(list, n);

createHeap(list,n);
printf("\nHeap:\n");
display(list,n);
display(list, n);
printf("\n");

heapsort(list,n);
heapsort(list, n);

printf("\nSorted List: \n");
display(list,n);
display(list, n);
}
7 changes: 5 additions & 2 deletions C/InsertionSort.C
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,19 @@ int main()
int arr[MAX], i, j, k, n;
printf("\nEnter the number of elements (Maximum: 10): ");
scanf("%d", &n);

for (i = 0; i < n; i++)
{
printf("\nEnter %d element : ", i + 1);
scanf("%d", &arr[i]);
}

printf("\nUnsorted list is: ");
for (i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}

printf("\n");

for (j = 1; j < n; j++)
{
k = arr[j];
Expand All @@ -28,6 +30,7 @@ int main()
}
arr[i + 1] = k;
}

printf("\nSorted list is: ");
for (i = 0; i < n; i++)
printf("%d ", arr[i]);
Expand Down
4 changes: 4 additions & 0 deletions C/Merge2SortedArray.C
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,24 @@ int main()

printf("Enter the number of elements in list1: ");
scanf("%d", &max1);

printf("\nGive the element in sorted order only: \n");
for (i = 0; i < max1; i++)
{
printf("\n Enter element %d : ", i + 1);
scanf("%d", &arr1[i]);
}

printf("\nEnter the number of elements in list2: ");
scanf("%d", &max2);

printf("\nGive the element in sorted order only: \n");
for (i = 0; i < max2; i++)
{
printf("\nEnter element %d : ", i + 1);
scanf("%d", &arr2[i]);
}

i = 0;
j = 0;
k = 0;
Expand Down
3 changes: 3 additions & 0 deletions C/MergeSort2.C
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ int main()
printf("\nUnsorted list: ");
for (i = 0; i < n; i++)
printf("%d ", arr[i]);

for (size = 1; size < n; size = size * 2)
{
l1 = 0;
Expand Down Expand Up @@ -52,9 +53,11 @@ int main()
for (i = 0; i < n; i++)
printf("%2d ", arr[i]);
}

printf("\n\nSorted list is: ");
for (i = 0; i < n; i++)
printf("%2d ", arr[i]);

getch();
return 0;
}
5 changes: 5 additions & 0 deletions C/PanCakeSort.C
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ int PanCakeSort(int *list, unsigned int length)
{
if (length < 2)
return 0;

int i, a, max_pos, moves = 0;

for (i = length; i > 1; i--)
{
max_pos = 0;
Expand All @@ -16,13 +18,16 @@ int PanCakeSort(int *list, unsigned int length)
if (list[a] > list[max_pos])
max_pos = a;
}

if (max_pos == i - 1)
continue;

if (max_pos)
{
moves++;
Flip(list, length, max_pos + 1);
}

Flip(list, length, i);
}
return moves;
Expand Down
Loading

0 comments on commit d429d7e

Please sign in to comment.