-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
Copy pathSelection_Sort.ts
35 lines (27 loc) · 888 Bytes
/
Selection_Sort.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// function for selection sort logic
function Selection_Sort(numbers: number[]) : number[]{
let i: number;
let j: number;
let min: number;
let temp: number;
// outer loop to traverse through each element
for(i = 0; i < numbers.length - 1; i++){
min = i;
// inner loop finds the minimum element and puts it in the beginning.
for(j = i + 1; j < numbers.length; j++){
if(numbers[j] < numbers[min]){
min = j;
}
} // inner loop ends
if(i !== min){
temp = numbers[i];
numbers[i] = numbers[min];
numbers[min] = temp;
}
} // outer loop ends
return numbers;
}
const numbers: number[] = [10, 9, 8, 1, 5, 2, 4, 7, 3];
console.log(Selection_Sort(numbers));
// INPUT [10, 9, 8, 1, 5, 2, 4, 7, 3]
// OUTPUT [ 1, 2, 3, 4, 5, 7, 8, 9, 10 ]