Dive into the world of backtracking with our comprehensive programming tutorial! This video guides you through mastering backtracking in C, C++, Java, and Python. Whether you're a novice or an experienced coder, follow along with step-by-step examples in each language to enhance your problem-solving skills. Unlock the secrets of backtracking and elevate your programming prowess!
c:
#include<stdio.h>
void printarray(int arr[], int n)
{
for(int i=0;i<n;i++)
{
printf("%d",arr[i]);
}
printf("\n");
}
void swap(int *a, int *b)
{
int temp= *a;
*a=*b;
*b=temp;
}
void backtrack(int elements[], int start, int n)
{
if(start == n-1)
{
printarray(elements, n);
return;
}
for(int i=start;i<n;i++)
{
swap(&elements[start],&elements[i]);
backtrack(elements, start+1, n);
}
}
int main()
{
int elements[]={1,2,3};
int size=sizeof(elements)/sizeof(elements[0]);
backtrack(elements, 0, size);
return 0;
}
c++:
#include<iostream>
#include<vector>
using namespace std;
void backtrack(std::vector<int>& elements, std::vector<int>& current, std::vector<bool>& used)
{
if (elements.empty())
{
for (int num:current)
{
std::cout << num << "";
}
std::cout << "\n";
return;
}
for (int i = 0; i < elements.size(); i++)
{
if (!used[i])
{
int chosen = elements[i];
current.push_back(chosen);
used[i] = true;
cout << "Calling backtrack with chosen = " << chosen << endl;
backtrack(elements, current, used);
used[i] = false;
current.pop_back();
}
}
}
int main()
{
std::vector<int> elements = {1,2,3};
std::vector<int> current;
std::vector<bool> used(elements.size(), false);
backtrack(elements, current, used);
return 0;
}
Java:
import java.util.Arrays;
public class backtracking {
public static void backtarcking(int[] elements,int start){
if(start == elements.length-1){
System.out.println(Arrays.toString(elements));
return;
}
for(int i = start; i < elements.length; i++){
int temp = elements[start];
elements[start] = elements [i];
elements [i] = temp;
backtarcking(elements, start + 1);
temp = elements[start];
elements [start] = elements[i];
elements[i] = temp;
}
}
public static void main(String[] args) {
int[] elements={1,2,3};
backtarcking(elements,0);
}
}
Python:
def backtrack(elements, current=[]):
if not elements:
print(current)
return
for i in range(len(elements)):
chosen=elements[i]
current.append(chosen)
next_elements=elements[:i]+elements[i+1:]
backtrack(next_elements,current)
current.pop
elements =[1,2,3]
backtrack(elements)
GitHub Link:
https://github.com/Sivatech24/Backtracking.git
Thank you for visiting our blog...
Comments
Post a Comment