diff --git a/bubble_sort.js b/bubble_sort.js new file mode 100644 index 0000000..166500b --- /dev/null +++ b/bubble_sort.js @@ -0,0 +1,44 @@ +/** + * Simple bubble sort implementation in JavaScript. + */ + +/** + * Sort an array using the bubble sort algorithm. + * + * @param {number[]} arr - Array of numbers to sort + * @returns {number[]} Sorted array (original array is not modified) + */ +function bubbleSort(arr) { + // Make a copy to avoid modifying the original + const sorted = [...arr]; + const n = sorted.length; + + // Traverse through all array elements + for (let i = 0; i < n; i++) { + // Last i elements are already in place + for (let j = 0; j < n - i - 1; j++) { + // Traverse the array from 0 to n-i-1 + // Swap if the element found is greater than the next element + if (sorted[j] > sorted[j + 1]) { + // Swap elements + [sorted[j], sorted[j + 1]] = [sorted[j + 1], sorted[j]]; + } + } + } + + return sorted; +} + +// Example usage +if (require.main === module || typeof window === 'undefined') { + const testArray = [64, 34, 25, 12, 22, 11, 90]; + console.log('Original array:', testArray); + const sortedArray = bubbleSort(testArray); + console.log('Sorted array:', sortedArray); +} + +// Export for use as a module +if (typeof module !== 'undefined' && module.exports) { + module.exports = { bubbleSort }; +} + diff --git a/bubble_sort.py b/bubble_sort.py new file mode 100644 index 0000000..c5c9e81 --- /dev/null +++ b/bubble_sort.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +""" +Simple bubble sort implementation in Python. +""" + + +def bubble_sort(arr): + """ + Sort an array using the bubble sort algorithm. + + Args: + arr: List of comparable elements to sort + + Returns: + Sorted list (original array is modified in-place) + """ + n = len(arr) + # Make a copy to avoid modifying the original + arr = arr.copy() + + # Traverse through all array elements + for i in range(n): + # Last i elements are already in place + for j in range(0, n - i - 1): + # Traverse the array from 0 to n-i-1 + # Swap if the element found is greater than the next element + if arr[j] > arr[j + 1]: + arr[j], arr[j + 1] = arr[j + 1], arr[j] + + return arr + + +if __name__ == "__main__": + # Example usage + test_array = [64, 34, 25, 12, 22, 11, 90] + print(f"Original array: {test_array}") + sorted_array = bubble_sort(test_array) + print(f"Sorted array: {sorted_array}") +