Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
|
|
@ -0,0 +1,31 @@
|
|||
PROGRAM BUBBLE_SORT
|
||||
|
||||
DIM FLIPS%,N,J
|
||||
|
||||
DIM A%[100]
|
||||
|
||||
BEGIN
|
||||
|
||||
! init random number generator
|
||||
RANDOMIZE(TIMER)
|
||||
! fills array A% with random data
|
||||
FOR N=1 TO UBOUND(A%,1) DO
|
||||
A%[N]=RND(1)*256
|
||||
END FOR
|
||||
! sort array
|
||||
FLIPS%=TRUE
|
||||
WHILE FLIPS% DO
|
||||
FLIPS%=FALSE
|
||||
FOR N=1 TO UBOUND(A%,1)-1 DO
|
||||
IF A%[N]>A%[N+1] THEN
|
||||
SWAP(A%[N],A%[N+1])
|
||||
FLIPS%=TRUE
|
||||
END IF
|
||||
END FOR
|
||||
END WHILE
|
||||
! print sorted array
|
||||
FOR N=1 TO UBOUND(A%,1) DO
|
||||
PRINT(A%[N];)
|
||||
END FOR
|
||||
PRINT
|
||||
END PROGRAM
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
;; sorts a vector of objects in place
|
||||
;; proc is an user defined comparison procedure
|
||||
|
||||
(define (bubble-sort V proc)
|
||||
(define length (vector-length V))
|
||||
(for* ((i (in-range 0 (1- length))) (j (in-range (1+ i) length)))
|
||||
(unless (proc (vector-ref V i) (vector-ref V j)) (vector-swap! V i j)))
|
||||
V)
|
||||
|
||||
|
||||
(define V #( albert antoinette elvis zen simon))
|
||||
(define (sort/length a b) ;; sort by string length
|
||||
(< (string-length a) (string-length b)))
|
||||
|
||||
(bubble-sort V sort/length)
|
||||
→ #(zen simon elvis albert antoinette)
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
## இந்த நிரல் ஒரு பட்டியலில் உள்ள எண்களை Bubble Sort என்ற முறைப்படி ஏறுவரிசையிலும் பின்னர் அதையே இறங்குவரிசையிலும் அடுக்கித் தரும்
|
||||
|
||||
## மாதிரிக்கு நாம் ஏழு எண்களை எடுத்துக்கொள்வோம்
|
||||
|
||||
எண்கள் = [5, 1, 10, 8, 1, 21, 4, 2]
|
||||
எண்கள்பிரதி = எண்கள்
|
||||
|
||||
பதிப்பி "ஆரம்பப் பட்டியல்:"
|
||||
பதிப்பி எண்கள்
|
||||
|
||||
நீளம் = len(எண்கள்)
|
||||
குறைநீளம் = நீளம் - 1
|
||||
|
||||
@(குறைநீளம் != -1) வரை
|
||||
மாற்றம் = -1
|
||||
@(எண் = 0, எண் < குறைநீளம், எண் = எண் + 1) ஆக
|
||||
முதலெண் = எடு(எண்கள், எண்)
|
||||
இரண்டாமெண் = எடு(எண்கள், எண் + 1)
|
||||
@(முதலெண் > இரண்டாமெண்) ஆனால்
|
||||
|
||||
## பெரிய எண்களை ஒவ்வொன்றாகப் பின்னே நகர்த்துகிறோம்
|
||||
|
||||
வெளியேஎடு(எண்கள், எண்)
|
||||
நுழைக்க(எண்கள், எண், இரண்டாமெண்)
|
||||
வெளியேஎடு(எண்கள், எண் + 1)
|
||||
நுழைக்க(எண்கள், எண் + 1, முதலெண்)
|
||||
மாற்றம் = எண்
|
||||
முடி
|
||||
முடி
|
||||
குறைநீளம் = மாற்றம்
|
||||
முடி
|
||||
|
||||
பதிப்பி "ஏறு வரிசையில் அமைக்கப்பட்ட பட்டியல்:"
|
||||
பதிப்பி எண்கள்
|
||||
|
||||
## இதனை இறங்குவரிசைக்கு மாற்றுவதற்கு எளிய வழி
|
||||
|
||||
தலைகீழ்(எண்கள்)
|
||||
|
||||
## இப்போது, நாம் ஏற்கெனவே எடுத்துவைத்த எண்களின் பிரதியை Bubble Sort முறைப்படி இறங்குவரிசைக்கு மாற்றுவோம்
|
||||
|
||||
நீளம் = len(எண்கள்பிரதி)
|
||||
குறைநீளம் = நீளம் - 1
|
||||
|
||||
@(குறைநீளம் != -1) வரை
|
||||
மாற்றம் = -1
|
||||
@(எண் = 0, எண் < குறைநீளம், எண் = எண் + 1) ஆக
|
||||
முதலெண் = எடு(எண்கள்பிரதி, எண்)
|
||||
இரண்டாமெண் = எடு(எண்கள்பிரதி, எண் + 1)
|
||||
@(முதலெண் < இரண்டாமெண்) ஆனால்
|
||||
|
||||
## சிறிய எண்களை ஒவ்வொன்றாகப் பின்னே நகர்த்துகிறோம்
|
||||
|
||||
வெளியேஎடு(எண்கள்பிரதி, எண்)
|
||||
நுழைக்க(எண்கள்பிரதி, எண், இரண்டாமெண்)
|
||||
வெளியேஎடு(எண்கள்பிரதி, எண் + 1)
|
||||
நுழைக்க(எண்கள்பிரதி, எண் + 1, முதலெண்)
|
||||
மாற்றம் = எண்
|
||||
முடி
|
||||
முடி
|
||||
குறைநீளம் = மாற்றம்
|
||||
முடி
|
||||
|
||||
பதிப்பி "இறங்கு வரிசையில் அமைக்கப்பட்ட பட்டியல்:"
|
||||
பதிப்பி எண்கள்பிரதி
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
' version 21-10-2016
|
||||
' compile with: fbc -s console
|
||||
' for boundry checks on array's compile with: fbc -s console -exx
|
||||
|
||||
Sub bubblesort(bs() As Long)
|
||||
' sort from lower bound to the highter bound
|
||||
' array's can have subscript range from -2147483648 to +2147483647
|
||||
Dim As Long lb = LBound(bs)
|
||||
Dim As Long ub = UBound(bs)
|
||||
Dim As Long done, i
|
||||
|
||||
Do
|
||||
done = 0
|
||||
For i = lb To ub -1
|
||||
' replace "<" with ">" for downwards sort
|
||||
If bs(i) > bs(i +1) Then
|
||||
Swap bs(i), bs(i +1)
|
||||
done = 1
|
||||
End If
|
||||
Next
|
||||
Loop Until done = 0
|
||||
|
||||
End Sub
|
||||
|
||||
' ------=< MAIN >=------
|
||||
|
||||
Dim As Long i, array(-7 To 7)
|
||||
|
||||
Dim As Long a = LBound(array), b = UBound(array)
|
||||
|
||||
Randomize Timer
|
||||
For i = a To b : array(i) = i : Next
|
||||
For i = a To b ' little shuffle
|
||||
Swap array(i), array(Int(Rnd * (b - a +1)) + a)
|
||||
Next
|
||||
|
||||
Print "unsort ";
|
||||
For i = a To b : Print Using "####"; array(i); : Next : Print
|
||||
bubblesort(array()) ' sort the array
|
||||
Print " sort ";
|
||||
For i = a To b : Print Using "####"; array(i); : Next : Print
|
||||
|
||||
' empty keyboard buffer
|
||||
While InKey <> "" : Wend
|
||||
Print : Print "hit any key to end program"
|
||||
Sleep
|
||||
End
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
proc bubbleSort[T](a: var openarray[T]) =
|
||||
var t = true
|
||||
for n in countdown(a.len-2, 0):
|
||||
if not t: break
|
||||
t = false
|
||||
for j in 0..n:
|
||||
if a[j] <= a[j+1]: continue
|
||||
swap a[j], a[j+1]
|
||||
t = true
|
||||
|
||||
var a = @[4, 65, 2, -31, 0, 99, 2, 83, 782]
|
||||
bubbleSort a
|
||||
echo a
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
function bubble_sort(sequence s)
|
||||
object tmp
|
||||
integer changed
|
||||
for j=length(s) to 1 by -1 do
|
||||
changed = 0
|
||||
for i=1 to j-1 do
|
||||
if s[i]>s[i+1] then
|
||||
{s[i],s[i+1],changed} = {s[i+1],s[i],1}
|
||||
end if
|
||||
end for
|
||||
if changed=0 then exit end if
|
||||
end for
|
||||
return s
|
||||
end function
|
||||
|
||||
constant s = {4, 15, "delta", 2, -31, 0, "alfa", 19, "gamma", 2, 13, "beta", 782, 1}
|
||||
|
||||
puts(1,"Before: ")
|
||||
?s
|
||||
puts(1,"After: ")
|
||||
?bubble_sort(s)
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
class BubbleSort
|
||||
**Sort a list with the Bubble Sort algorithm**
|
||||
|
||||
on start
|
||||
|
||||
args := program arguments
|
||||
.sort(args)
|
||||
print args
|
||||
|
||||
define sort(list) is shared
|
||||
**Sort the list**
|
||||
|
||||
test
|
||||
list := [4, 2, 7, 3]
|
||||
.sort(list)
|
||||
assert list = [2, 3, 4, 7]
|
||||
|
||||
body
|
||||
last := list.count - 1
|
||||
|
||||
post while changed
|
||||
|
||||
changed := false
|
||||
|
||||
for i in last
|
||||
|
||||
if list[i] > list[i + 1]
|
||||
temp := list[i]
|
||||
list[i] := list[i + 1]
|
||||
list[i + 1] := temp
|
||||
changed := true
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
bubbleList = [4,2,1,3]
|
||||
flag = 0
|
||||
bubbleSort(bubbleList)
|
||||
see bubbleList
|
||||
|
||||
func bubbleSort A
|
||||
n = len(A)
|
||||
while flag = 0
|
||||
flag = 1
|
||||
for i = 1 to n-1
|
||||
if A[i] > A[i+1]
|
||||
temp = A[i]
|
||||
A[i] = A[i+1]
|
||||
A[i+1] = temp
|
||||
flag = 0
|
||||
ok
|
||||
next
|
||||
end
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
func bubble_sort(arr) {
|
||||
loop {
|
||||
var swapped = false
|
||||
{ |i|
|
||||
if (arr[i-1] > arr[i]) {
|
||||
arr[i-1, i] = arr[i, i-1]
|
||||
swapped = true
|
||||
}
|
||||
} * arr.end
|
||||
swapped || break
|
||||
}
|
||||
return arr
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
func bubbleSort<T:Comparable>(inout list:[T]) {
|
||||
var done = false
|
||||
while !done {
|
||||
done = true
|
||||
for i in 1..<list.count {
|
||||
if list[i - 1] > list[i] {
|
||||
(list[i], list[i - 1]) = (list[i - 1], list[i])
|
||||
done = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
def bubble_sort:
|
||||
def swap(i;j): .[i] as $x | .[i]=.[j] | .[j]=$x;
|
||||
|
||||
# input/output: [changed, list]
|
||||
reduce range(0; length) as $i
|
||||
( [false, .];
|
||||
if $i > 0 and (.[0]|not) then .
|
||||
else reduce range(0; (.[1]|length) - $i - 1) as $j
|
||||
(.[0] = false;
|
||||
.[1] as $list
|
||||
| if $list[$j] > $list[$j + 1] then [true, ($list|swap($j; $j+1))]
|
||||
else .
|
||||
end )
|
||||
end ) | .[1] ;
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
(
|
||||
[3,2,1],
|
||||
[1,2,3],
|
||||
["G", "F", "C", "A", "B", "E", "D"]
|
||||
) | bubble_sort
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
$ jq -c -n -f Bubble_sort.jq
|
||||
[1,2,3]
|
||||
[1,2,3]
|
||||
["A","B","C","D","E","F","G"]
|
||||
Loading…
Add table
Add a link
Reference in a new issue