swap() function in C++
Swap() function:
swap() function in C++:
swap() function is a pre-define function in c++ present in STL( Standard template library ). It is used to swap two numbers. It takes two mandatory parameters, which can be of any data type. swap() function does not return any value.
Syntax of swap() function c++:
swap(a, b);
a and b can be any type.
Advantages of swap() function:
- No need for a third variable.
- swap function will reduce lines of code.
- Memory is saved.
Example program to swap two numbers using swap function.
// C++ program for swapping of two numbers using swap() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
int x, y;
cout << " Enter the value of x: " ;
cin >> x; // reading x value
cout << " Enter the value of y: " ;
cin >> y; // reading y value
// printing the values before swapping
cout << "Value of x before swapping: " << x << endl;
cout << "Value of y before swapping: " << y << endl;
// swap values of the variables
swap(x, y); // function call
// printing the values after swapping
cout << "Value of x after swapping: " << x << endl;
cout << "Value of y after swapping: " << y << endl;
return 0;
}
Output:
Enter the value of x: 50
Enter the value of y: 60
Value of x before swapping: 50
Value of y before swapping: 60
Value of x after swapping: 60
Value of y after swapping: 50
Example program to swap two strings using swap() function in C++:
// program to swap two strings using swap() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
string str1, str2; // declaring the strings
cout << " Enter the string str1: " ;
cin >> str1; // reading str1
cout << " Enter the string str2: " ;
cin >> str2; // reading str2
// printing the strings before swapping
cout << " str1 string before swapping: " << str1 << endl;
cout << " str2 string before swapping: " << str2 << endl;
// swapping two strings
swap(str1, str2); // function call
// printing the strings after swapping
cout << "str1 string before swapping: " << str1 << endl;
cout << "str2 string before swapping: "<< str2 << endl;
return 0;
}
Output:
Enter the string str1: JavaTpoint
Enter the string str2: Tutorials
str1 string before swapping: JavaTpoint
str2 string before swapping: Tutorials
str1 string After swapping: Tutorials
str2 string After swapping: JavaTpoint
swap() function in C:
In C, we don't have any in-Build function to swap two numbers. User have to create the function to swap two numbers.
In C, we can swap two variables by taking the third variable, addition and subtraction, division etc. After creating a function, we can call that function in two ways.
- Call by value.
- Call by reference.
Example to create a swap function and call the function using call by value technique.
// C program to swap two numbers using third variable
#include<stdio.h>
int main()
{
int x, y, temp;
printf("Enter the Value of x: ");
scanf("%d", &x);
printf("\nEnter the Value of y: ");
scanf("%d", &y);
temp = x;
x = y;
y = temp;
printf("\nAfter Swapping: x = %d", x);
printf("\nAfter Swapping: y = %d, y);
return 0;
}
Output:
Enter the value of x: 50
Enter the value of y: 60
After Swapping x = 60
After Swapping y = 50
Example program to swap two numbers in C using user define function:
// C program to swap two variables using third variable
#include <stdio.h>
void swap( int *a, int *b);
// This function swaps values by call by reference
int main()
{
int x, y;
printf(" Enter a value: ");
scanf("%d", &x);
printf("\nEnter b value: ");
scanf("%d", &y);
swap(&x, &y);
printf(" \nAfter Swapping: x = %d", x);
printf(" \nAfter Swapping: y = %d", y);
return 0;
}
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
Output:
Enter a value: 100
Enter b value: 500
After Swapping: x = 500
After Swapping: y = 100
Example program to swap two numbers without using third variable( addition and subtraction method)
// C program to swap two numbers without using a third variable
#include <stdio.h>
int main()
{
int x, y; // variable declaration
printf("Enter the x value: ");
scanf(" %d", &x); // reading x value
printf("Enter the y value: ");
scanf(" %d", &y); // reading y value
printf(" value of x Before swapping is: %d \nvalue of y before swapping is: %d ", x,y); //printing numbers before swapping
// swapping logic starts
x = x + y;
y = x - y;
x = x - y;
printf(" \nvalue of x After swapping is: %d \nvalue of y After swapping is: %d ", x,y); //printing numbers after swapping
return 0;
}
Output:
Enter the x value: 96
Enter the y value: 78
value of x Before swapping is: 96
value of y before swapping is: 78
value of x After swapping is: 78
value of y After swapping is: 96
Example program to swap two numbers without using a third variable( using bitwise XOR operator)
// C program to swap two numbers without using a third variable
#include <stdio.h>
int main()
{
int x, y; // variable declaration
printf("Enter the x value: ");
scanf(" %d", &x); // reading x value
printf(" \nEnter the y value: ");
scanf(" %d", &y); // reading y value
printf(" value of x Before swapping is: %d \nvalue of y before swapping is: %d ", x,y); //printing numbers before swapping
// swapping logic starts
x=x^y;
y=x^y;
x=y^x;
printf(" \nvalue of x After swapping is: %d \nvalue of y After swapping is: %d ", x,y); //printing numbers after swapping
return 0;
}
Output:
Enter the x value: 78
Enter the y value: 36
value of x Before swapping is: 78
value of y before swapping is: 36
value of x After swapping is: 36
value of y After swapping is: 78
Example program to swap two numbers without using a third variable( by multiplication and division method)
// C program to swap two numbers without using a third variable
#include <stdio.h>
int main()
{
int x, y; // variable declaration
printf("Enter the x value: ");
scanf(" %d", &x); // reading x value
printf("Enter the y value: ");
scanf(" %d", &y); // reading y value
printf(" value of x Before swapping is: %d \nvalue of y before swapping is: %d ", x,y); //printing numbers before swapping
// swapping logic starts
x=x*y;
y=x/y;
x=x/y;
printf(" \nvalue of x After swapping is: %d \nvalue of y After swapping is: %d ", x,y); //printing numbers after swapping
return 0;
}
Output:
Enter the x value: 36
Enter the y value: 98
value of x Before swapping is: 36
value of y before swapping is: 98
value of x After swapping is: 98
value of y After swapping is: 36
Example program to swap two numbers without using a third variable:
// C program to swap two numbers without using a third variable
#include <stdio.h>
int main()
{
int x, y; // variable declaration
printf("Enter the x value: ");
scanf(" %d", &x); // reading x value
printf("Enter the y value: ");
scanf(" %d", &y); // reading y value
printf(" value of x Before swapping is: %d\nvalue of y before swapping is: %d", x,y); //printing numbers before swapping
// swapping logic starts
x = (x * y) / (y = x);
printf(" \nvalue of x After swapping is: %d\nvalue of y After swapping is: %d", x,y); //printing numbers after swapping
return 0;
}
Output:
Enter the x value: 20
Enter the y value: 30
value of x Before swapping is: 20
value of y before swapping is: 30
value of x After swapping is: 30
value of y After swapping is: 20
Summary:
For all the above examples, the time and space Complexity are
- Time complexity: O(1)
- Space complexity: O(1)
In this article, we learned about the swapping of two numbers, advantages of swap function in c++, applications of swapping algorithm, swap function in c++, examples of swapping two numbers in c and c++, different swapping algorithm approaches, Time and space complexity of swapping algorithm.