mirror of
				https://github.com/theoludwig/programming-challenges.git
				synced 2025-09-11 23:11:21 +02:00 
			
		
		
		
	feat(solutions): add sorting-algorithms/dart/insertion-sort
				
					
				
			This commit is contained in:
		| @@ -0,0 +1,7 @@ | ||||
| # sorting-algorithms/dart/insertion-sort | ||||
|  | ||||
| Created by [@Divlo](https://github.com/Divlo) on 29 June 2021. | ||||
|  | ||||
| | Algorithm                                                   | Best Case   | Average Case | Worst Case  | | ||||
| | ----------------------------------------------------------- | ----------- | ------------ | ----------- | | ||||
| | [Insertion sort](https://wikipedia.org/wiki/Insertion_sort) | O(n)        | O(n²)        | O(n²)       | | ||||
| @@ -0,0 +1,32 @@ | ||||
| import 'dart:io'; | ||||
|  | ||||
| void main() { | ||||
|   int length = int.parse(readLineSync()); | ||||
|   List<int> numbers = []; | ||||
|   for (int indexInput = 0; indexInput < length; indexInput++) { | ||||
|     numbers.add(int.parse(readLineSync())); | ||||
|   } | ||||
|   List<int> sortedNumbers = insertionSort(numbers); | ||||
|   for (int index = 0; index < length; index++) { | ||||
|     print(sortedNumbers[index]); | ||||
|   } | ||||
| } | ||||
|  | ||||
| List<int> insertionSort(Iterable<int> numbersInput) { | ||||
|   var numbers = [...numbersInput]; | ||||
|   for (var index1 = 0; index1 < numbers.length; index1++) { | ||||
|     var current = numbers[index1]; | ||||
|     var index2 = index1 - 1; | ||||
|     while (index2 >= 0 && numbers[index2] > current) { | ||||
|       numbers[index2 + 1] = numbers[index2]; | ||||
|       index2 -= 1; | ||||
|     } | ||||
|     numbers[index2 + 1] = current; | ||||
|   } | ||||
|   return numbers; | ||||
| } | ||||
|  | ||||
| String readLineSync() { | ||||
|   String? string = stdin.readLineSync(); | ||||
|   return string == null ? '' : string; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user