0% found this document useful (0 votes)
5 views7 pages

DSAsorting

Uploaded by

mishiyama00000
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views7 pages

DSAsorting

Uploaded by

mishiyama00000
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Write a program to bubble sort

#include<stdio.h>
void bubble(int a[ ], int n){
int i, j, temp;
for(i=0;i<n-1;i++){
for(j=0;j<n-i-1;j++){
temp = a[j];
if(a[j] > a[j+1])
{
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
int main(){
int n, a[10], i;
printf("Enter the no of elements\t");
scanf("%d", &n);
printf("\nEnter elements\n");
for(i=0; i<n; i++){
scanf("%d", &a[i]);
}
printf("\nBefore sorting:\n");
for(i=0;i<n;i++){
printf("%d\t", a[i]);
}
bubble(a, n);
printf("\nAfter sorting:\n");
for(i=0;i<n;i++){
printf("%d\t", a[i]);
}
return 0;

}
Write a program to selection sort
#include<stdio.h>
void select(int a[], int n){
int i, j, temp, index, least;
for(i=0; i<n ;i++){
least = a[i];
index = i;
for(j=i+1; j<n; j++){
if(a[j] < least){
least = a[j];
index = j;
}
}
if(i != index){
temp = a[i];
a[i] = a[index];
a[index] = temp;
}
}
}
int main(){
int n, a[10], i;
printf("Enter the no. of elements\t");
scanf("%d", &n);
printf("Enter elements\n”);
for(i=0; i<n; i++){
scanf("%d", &a[i]);
}
printf("\nBefore sorting:\n");
for(i=0; i<n; i++){
printf("%d\t", a[i]);
}
select(a, n);
printf("\nAfter sorting:\n");
for(i=0; i<n; i++){
printf("%d\t", a[i]);
}
return 0;
}
Write a program to insertion sort
#include<stdio.h>
void insert(int a[], int n){
int i, j, temp;
for(i=0; i<n ;i++){
temp = a[i];
j = i-1;
while((temp < a[j]) && j >= 0){
a[j+1] = a[j];
j--;
}
a[j+1] = temp;
}
}
int main(){
int n, a[10], i;
printf("Enter the no. of elements\t");
scanf("%d", &n);
printf("Enter elements\n”, );
for(i=0; i<n; i++){
scanf("%d", &a[i]);
}
printf("\nBefore sorting:\n");
for(i=0; i<n; i++){
printf("%d\t", a[i]);
}
insert(a, n);
printf("\nAfter sorting:\n");
for(i=0; i<n; i++){
printf("%d\t", a[i]);
}
return 0;
}
Write a program to shell sort
#include<stdio.h>
int main(){
int n, i, j, gap, temp, a[10];
printf("Enter the no. of elements\t");
scanf("%d", &n);
printf("Enter %d elements\t");
for(i=0; i<n; i++){
scanf("%d", &a[i]);
}
printf("\nBefore sorting:\n");
for(i=0; i<n; i++){
printf("%d\t", a[i]);
}
for(gap = n/2; gap > 0; gap/=2){
for(i = gap; i < n; i++){
temp = a[i];
for(j = i; j>=gap; j -= gap){
if(temp < a[j-gap]){
a[j] = a[j-gap];
}
else{
break;
}
}
a[j] = temp;
}
}
printf("\nAfter sorting:\n");
for(i=0; i<n; i++){
printf("%d\t", a[i]);
}
return 0;
}
Write a program to merge sort
#include <stdio.h>
void merge(int a[], int l, int m, int r) {
int x = l;
int k = l, i, b[10], y = m;
while (x < m && y <= r) {
if (a[x] < a[y]) {
b[k] = a[x];
x++;
} else {
b[k] = a[y];
y++;
}
k++;
}
while (x < m) {
b[k] = a[x];
x++;
k++;}
while (y <= r) {
b[k] = a[y];
y++;
k++;
}
for (i = l; i <= r; i++) {
a[i] = b[i]; }
}
void merge_sort(int a[], int l, int r) {
if (l < r) {
int mid = (l + r) / 2;
merge_sort(a, l, mid);
merge_sort(a, mid + 1, r);
merge(a, l, mid + 1, r);
}
}
int main() {
int a[10], n, i;
printf("Enter the no. of elements\t");
scanf("%d", &n);
printf("Enter %d elements\n", n);
for (i = 0; i < n; I++)
{
scanf("%d", &a[i]);
}
printf("\nBefore sorting:\n");
for (i = 0; i < n; I++)
{
printf("%d\t", a[i]); }
merge_sort(a, 0, n - 1);
printf("\nAfter sorting:\n");
for (i = 0; i < n; i++)
{
printf("%d\t", a[i]);}
return 0;
}
Write a program to heap sort
#include <stdio.h>
void swap(int* a, int* b){
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void heapify(int a[], int n, int i){
int largest = i;
int l = 2*i+1;
int r = 2*i+2;
if(l<n && a[l] > a[largest])
largest = l;
if(r < n && a[r] > a[largest])
largest = r;
if(largest != i){
swap(&a[i], &a[largest]);
heapify(a, n, largest);
}
}
void heapSort(int a[], int n){
for(int i = n/2-1; i >=0; i--)
heapify(a, n, i);
for(int i = n-1; i>=0; i--){
swap(&a[0], &a[i]);
heapify(a, i, 0);
}
}

int main() {
int a[10], n, i;
printf("Enter the no. of elements\t");
scanf("%d", &n);
printf("Enter %d elements\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
printf("\nBefore sorting:\n");
for (i = 0; i < n; i++) {
printf("%d\t", a[i]);
}
heapSort(a, n);
printf("\nAfter sorting:\n");
for (i = 0; i < n; i++) {
printf("%d\t", a[i]);
}
return 0;
}
Write a program to quick sort
#include <stdio.h>
int split(int a[10], int l, int r){
int x = l, y = r;
int p = a[l], temp;
while(x<y){
while(x<r &&a[x] <= p)
x++;
while(y>l && a[y] > p)
y--;
if(x<y){
temp = a[x];
a[x] = a[y];
a[y] = temp;
}
}
a[l] = a[y];
a[y] = p;
return y;
}
void quick(int a[10], int l, int r){
int p;
if(l<r){
p = split(a, l, r);
quick(a, l, p-1);
quick(a, p+1, r);
}
}

int main() {
int a[10], n, i, l = 0, r;
printf("Enter the no. of elements\t");
scanf("%d", &n);
r = n-1;
printf("Enter %d elements\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
printf("\nBefore sorting:\n");
for (i = 0; i < n; i++) {
printf("%d\t", a[i]);
}
quick(a, l, r);
printf("\nAfter sorting:\n");
for (i = 0; i < n; i++) {
printf("%d\t", a[i]);
}
return 0;
}

You might also like