Binäärinen lisäyslajittelu on lajittelualgoritmi, joka on samanlainen kuin lisäyslajittelu , mutta sen sijaan, että käyttäisimme lineaarista hakua löytääksemme paikan, johon elementti tulisi lisätä, käytämme binäärihaku . Näin ollen pienennämme yhden elementin lisäämisen vertailuarvoa arvosta O (N) arvoon O (log N).
Se on joustava algoritmi, mikä tarkoittaa, että se toimii nopeammin, kun samat tietyt jäsenet ovat jo hyvin lajiteltuina, eli ominaisuuden nykyinen sijainti on lähempänä sen todellista sijaintia lajitetussa luettelossa.
Se on vakaa suodatusalgoritmi – elementit, joilla on samat arvot, näkyvät samassa järjestyksessä viimeisessä järjestyksessä kuin ne olivat ensimmäisessä luettelossa.
Binäärilisäyksen sovellukset:
- Binäärinen lisäyslajittelu toimii parhaiten, kun taulukossa on pienempi määrä kohteita.
- Kun suoritat nopeaa lajittelua tai yhdistämislajittelua, kun alitaulukon koko pienenee (esim. <= 25 elementtiä), on parasta käyttää binäärilisäyslajittelua.
- Tämä algoritmi toimii myös silloin, kun avainten vertailun hinta on riittävän korkea. Jos esimerkiksi haluamme suodattaa useita merkkijonoja, kahden merkkijonon vertailu on parempi.
Kuinka binäärilisäyslajittelu toimii?
- Binäärilisäyslajittelutilassa jaamme samat jäsenet kahteen aliryhmään – suodatettuun ja suodattamattomaan. Samojen jäsenten ensimmäinen elementti on organisoidussa aliryhmässä, ja kaikki muut elementit ovat suunnittelemattomia.
- Sitten iteroidaan toisesta elementistä viimeiseen. Toistettaessa i:ntä, teemme nykyisestä objektista avaimemme. Tämä avain on ominaisuus, joka meidän pitäisi lisätä alla olevaan luetteloomme.
- Tätä varten käytämme ensin binäärihakua alla olevasta lajitetusta alipalkista löytääksemme avaimemme suuremman elementin sijainnin. Kutsutaan tätä asemaa pos. Siirrämme sitten kaikki elementit oikealle kohdasta 1 ja loimme Array[pos] = avain.
- Voimme huomata, että jokaisessa i:nnessä kertolaskussa taulukon vasen osa till (i – 1) on jo lajiteltu.
Lähestymistapa binaarilisäyksen toteuttamiseksi:
- Iteroi taulukko toisesta elementistä viimeiseen elementtiin.
- Tallenna nykyinen elementti A[i] muuttujaavaimeen.
- Etsi binäärihaun avulla elementin sijainti, joka on hieman suurempi kuin A[i] alitaulukossa A[0]:sta A[i-1]:ään. Oletetaan, että tämä elementti on indeksin kohdassa.
- Siirrä kaikki elementit indeksistä pos kohtaan i-1 oikealle.
- A[pos] = avain.
Alla on yllä olevan lähestymistavan toteutus:
C++
// C program for implementation of> // binary insertion sort> #include> using> namespace> std;> // A binary search based function> // to find the position> // where item should be inserted> // in a[low..high]> int> binarySearch(>int> a[],>int> item,> >int> low,>int> high)> {> >if> (high <= low)> >return> (item>a[matala]) ?> >(low + 1) : low;> >int> mid = (low + high) / 2;> >if> (item == a[mid])> >return> mid + 1;> >if> (item>a[mid])> >return> binarySearch(a, item,> >mid + 1, high);> >return> binarySearch(a, item, low,> >mid - 1);> }> // Function to sort an array a[] of size 'n'> void> insertionSort(>int> a[],>int> n)> {> >int> i, loc, j, k, selected;> >for> (i = 1; i { j = i - 1; selected = a[i]; // find location where selected should be inserted loc = binarySearch(a, selected, 0, j); // Move all elements after location to create space while (j>= loc) {a[j + 1] = a[j]; j--; } a[j + 1] = valittu; } } // Ohjainkoodi int main() { int a[] = { 37, 23, 0, 17, 12, 72, 31, 46, 100, 88, 54 }; int n = koko(a) / koko(a[0]), i; lisäysLajittele(a, n); cout<<'Sorted array:
'; for (i = 0; i cout <<' '<< a[i]; return 0; } // this code is contribution by shivanisinghss2110> |
>
>
maailman paras auto
C
// C program for implementation of> // binary insertion sort> #include> // A binary search based function> // to find the position> // where item should be inserted> // in a[low..high]> int> binarySearch(>int> a[],>int> item,> >int> low,>int> high)> {> >if> (high <= low)> >return> (item>a [matala]) ?>> >int> mid = (low + high) / 2;> >if> (item == a[mid])> >return> mid + 1;> >if> (item>a[mid])> >return> binarySearch(a, item,> >mid + 1, high);> >return> binarySearch(a, item, low,> >mid - 1);> }> // Function to sort an array a[] of size 'n'> void> insertionSort(>int> a[],>int> n)> {> >int> i, loc, j, k, selected;> >for> (i = 1; i { j = i - 1; selected = a[i]; // find location where selected should be inserted loc = binarySearch(a, selected, 0, j); // Move all elements after location to create space while (j>= loc) {a[j + 1] = a[j]; j--; } a[j + 1] = valittu; } } // Ohjainkoodi int main() { int a[] = { 37, 23, 0, 17, 12, 72, 31, 46, 100, 88, 54 }; int n = koko(a) / koko(a[0]), i; lisäysLajittele(a, n); printf('Lajiteltu taulukko:
'); for (i = 0; i printf('%d ', a[i]); return 0; }> |
>
>
Java
// Java Program implementing> // binary insertion sort> import> java.util.Arrays;> class> GFG> {> > >public> static> void> main(String[] args)> >{> >final> int>[] arr = {>37>,>23>,>0>,>17>,>12>,>72>,> >31>,>46>,>100>,>88>,>54> };> >new> GFG().sort(arr);> >for> (>int> i =>0>; i System.out.print(arr[i] + ' '); } // Driver Code public void sort(int array[]) { for (int i = 1; i { int x = array[i]; // Find location to insert // using binary search int j = Math.abs( Arrays.binarySearch(array, 0, i, x) + 1); // Shifting array to one // location right System.arraycopy(array, j, array, j + 1, i - j); // Placing element at its // correct location array[j] = x; } } } // Code contributed by Mohit Gupta_OMG> |
>
>
Python 3
# Python Program implementation> # of binary insertion sort> def> binary_search(arr, val, start, end):> > ># we need to distinguish whether we> ># should insert before or after the> ># left boundary. imagine [0] is the last> ># step of the binary search and we need> ># to decide where to insert -1> >if> start>=>=> end:> >if> arr[start]>val:> >return> start> >else>:> >return> start>+>1> ># this occurs if we are moving> ># beyond left's boundary meaning> ># the left boundary is the least> ># position to find a number greater than val> >if> start>loppu:> >return> start> >mid>=> (start>+>end)>/>/>2> >if> arr[mid] return binary_search(arr, val, mid+1, end) elif arr[mid]>val: return binary_search(arr, val, start, mid-1) else: return mid def insertion_sort(arr): for i in range(1, len(arr)): val = arr[i] j = binary_search(arr, val, 0, i-1) arr = arr[:j] + [arvo] + arr[j:i] + arr[i+1:] return arr print('Lajiteltu array:') print(insertion_sort( [37, 23, 0, 31, 22, 17, 12, 72, 31, 46, 100, 88, 54])) # Mohit Gupta_OMG:n lähettämä koodi>> |
>
diskreetti matemaattinen negaatio
// C# Program implementing>// binary insertion sort>using>System;>class>GFG {>>public>static>void>Main()>>{>>int>[] arr = { 37, 23, 0, 17, 12, 72,>>31, 46, 100, 88, 54 };>>sort(arr);>>for>(>int>i = 0; i Console.Write(arr[i] + ' '); } // Driver Code public static void sort(int[] array) { for (int i = 1; i { int x = array[i]; // Find location to insert using // binary search int j = Math.Abs( Array.BinarySearch(array, 0, i, x) + 1); // Shifting array to one location right System.Array.Copy(array, j, array, j + 1, i - j); // Placing element at its correct // location array[j] = x; } } } // This code is contributed by nitin mittal.>>>PHP
// PHP program for implementation of // binary insertion sort // A binary search based function to find // the position where item should be // inserted in a[low..high] function binarySearch($a, $item, $low, $high) { if ($high <= $low) return ($item>$a[$low]) ? ($matala + 1) : $matala; $keski = (int)(($alhainen + $korkea) / 2); if($item == $a[$mid]) return $mid + 1; if($item> $a[$mid]) return binarySearch($a, $item, $mid + 1, $high); return binarySearch($a, $item, $low, $mid - 1); } // Funktio 'n'-koon taulukon lajitteluun funktio insertionSort(&$a, $n) { $i; $loc; $j; $k; $valittu; for ($i = 1; $i<$n; ++$i) { $j = $i - 1; $selected = $a[$i]; // find location where selected // item should be inserted $loc = binarySearch($a, $selected, 0, $j); // Move all elements after location // to create space while ($j>= $loc) { $a[$j + 1] = $a[$j]; $j--; } $a[$j + 1] = $valittu; } } // Ohjainkoodi $a = array(37, 23, 0, 17, 12, 72, 31, 46, 100, 88, 54); $n = koko($a); insertionSort($a, $n); echo 'Lajiteltu array: '; for ($i = 0; $i<$n; $i++) echo '$a[$i] '; // This code is contributed by // Adesh Singh ?>>>>
>// Javascript Program implementing>// binary insertion sort>function>binarySearch(a, item, low, high)>{>>>if>(high <= low)>>return>(item>a[matala]) ?>>(low + 1) : low;>>>mid = Math.floor((low + high) / 2);>>>if>(item == a[mid])>>return>mid + 1;>>>if>(item>a[mid])>>return>binarySearch(a, item,>>mid + 1, high);>>>return>binarySearch(a, item, low,>>mid - 1);>}>function>sort(array)>{>>for>(let i = 1; i { let j = i - 1; let x = array[i]; // Find location to insert // using binary search let loc = Math.abs( binarySearch(array, x, 0, j)); // Shifting array to one // location right while (j>= loc) { matriisi[j + 1] = taulukko[j]; j--; } // Elementin sijoittaminen // oikeaan sijaintiinsa matriisi[j+1] = x; } } // Ohjainkoodi let arr=[ 37, 23, 0, 17, 12, 72, 31, 46, 100, 88, 54]; sort(arr); for (olkoon i = 0; i document.write(arr[i] + ' '); // Tämän koodin tarjoaa unknown2108 // C-ohjelma toteuttaa // binäärilisäyksen lajittelu #include // Binäärihaku perustuu funktioon // löytääksesi paikan // johon kohde pitäisi lisätä // int binarySearch(int a[], int item, int low, int high) { if (high)<= low) return (item>a [matala]) ? (matala + 1) : alhainen; int mid = (matala + korkea) / 2; if (kohde == a[mid]) return mid + 1; if (kohde> a[mid]) return binarySearch(a, item, mid + 1, high); return binarySearch(a, nimike, alhainen, keski - 1); } // Toiminto lajitella taulukko a[], jonka koko on 'n' void insertionSort(int a[], int n) { int i, loc, j, k, selected; for (i = 1; i { j = i - 1; valittu = a[i]; // etsi sijainti, johon valittu pitäisi lisätä loc = binarySearch(a, selected, 0, j); // Siirrä kaikki elementit sijainnin jälkeen luoda tilaa while (j>= loc) { a[j + 1] = a[j] } a[j + 1] = valittu } } // Ohjainkoodi int main() { int a; [] = { 37, 23, 0, 17, 12, 72, 31, 46, 100, 88, 54 } int n = koko(a) / koko(a[0]), i; ); printf('Lajiteltu taulukko: '); for (i = 0; i printf('%d ', a[i]); r// C-ohjelma // binäärilisäyksen toteuttamiseen #include // Binäärihakuun perustuva funktio // löytääksesi paikan // johon kohde pitäisi lisätä // int binarySearch(int a[], int item, int low, int high) { jos (korkea<= low) return (item>a [matala]) ? (matala + 1) : alhainen; int mid = (matala + korkea) / 2; if (kohde == a[mid]) return mid + 1; if (kohde> a[mid]) return binarySearch(a, item, mid + 1, high); return binarySearch(a, nimike, alhainen, keski - 1); } // Toiminto lajitella taulukko a[], jonka koko on 'n' void insertionSort(int a[], int n) { int i, loc, j, k, selected; for (i = 1; i { j = i - 1; valittu = a[i]; // etsi sijainti, johon valitut pitäisi lisätä. loc = binarySearch(a, selected, 0, j); // Siirrä kaikki elementit sijainnin jälkeen luoda tilaa while (j>= loc) { a[j + 1] = a[j] } a[j + 1] = valittu } } // Ohjainkoodi int main() { int a; [] = { 37, 23, 0, 17, 12, 72, 31, 46, 100, 88, 54 } int n = koko(a) / koko(a[0]), i; ); printf('Lajiteltu taulukko: '); for (i = 0; i printf('%d ', a[i]); // C-ohjelma // binäärilisäyksen # toteuttamiseen sisällyttää // Binäärihakuun perustuva funktio // löytääksesi paikan // johon kohde pitäisi lisätä // int binarySearch(int a[], int item, int low, int high) { if (korkea<= low) return (item>a [matala]) ? (matala + 1) : alhainen; int mid = (matala + korkea) / 2; if (kohde == a[mid]) return mid + 1; if (kohde> a[mid]) return binarySearch(a, item, mid + 1, high); return binarySearch(a, nimike, alhainen, keski - 1); } // Toiminto lajitella taulukko a[], jonka koko on 'n' void insertionSort(int a[], int n) { int i, loc, j, k, selected; for (i = 1; i { j = i - 1; valittu = a[i]; // etsi sijainti, johon valitut pitäisi lisätä. loc = binarySearch(a, selected, 0, j); // Siirrä kaikki elementit sijainnin jälkeen luoda tilaa while (j>= loc) { a[j + 1] = a[j] } a[j + 1] = valittu } } // Ohjainkoodi int main() { int a; [] = { 37, 23, 0, 17, 12, 72, 31, 46, 100, 88, 54 } int n = koko(a) / koko(a[0]), i; ); printf('Lajiteltu taulukko: '); for (i = 0; i printf('%d ', a[i]); // C-ohjelma // binäärilisäyksen # toteuttamiseen sisällyttää // Binäärihakuun perustuva funktio // löytääksesi paikan // johon kohde pitäisi lisätä // int binarySearch(int a[], int item, int low, int high) { if (korkea<= low) return (item>a [matala]) ? (matala + 1) : alhainen; int mid = (matala + korkea) / 2; if (kohde == a[mid]) return mid + 1; if (kohde> a[mid]) return binarySearch(a, item, mid + 1, high); return binarySearch(a, nimike, alhainen, keski - 1); } // Toiminto lajitella taulukko a[], jonka koko on 'n' void insertionSort(int a[], int n) { int i, loc, j, k, selected; for (i = 1; i { j = i - 1; valittu = a[i]; // etsi sijainti, johon valittu pitäisi lisätä loc = binarySearch(a, selected, 0, j); // Siirrä kaikki elementit sijainnin jälkeen luoda tilaa while (j>= loc) { a[j + 1] = a[j] } a[j + 1] = valittu } } // Ohjainkoodi int main() { int a; [] = { 37, 23, 0, 17, 12, 72, 31, 46, 100, 88, 54 } int n = koko(a) / koko(a[0]), i; ); printf('Lajiteltu taulukko: '); for (i = 0; i printf('%d ', a[i]); // C-ohjelma // binäärilisäyksen # toteuttamiseen sisällyttää // Binäärihakuun perustuva funktio // löytääksesi paikan // johon kohde pitäisi lisätä // int binarySearch(int a[], int item, int low, int high) { if (korkea<= low) return (item>a [matala]) ? (matala + 1) : alhainen; int mid = (matala + korkea) / 2; if (kohde == a[mid]) return mid + 1; if (kohde> a[mid]) return binarySearch(a, item, mid + 1, high); return binarySearch(a, nimike, alhainen, keski - 1); } // Toiminto lajitella taulukko a[], jonka koko on 'n' void insertionSort(int a[], int n) { int i, loc, j, k, selected; for (i = 1; i { j = i - 1; valittu = a[i]; // etsi sijainti, johon valitut pitäisi lisätä. loc = binarySearch(a, selected, 0, j); // Siirrä kaikki elementit sijainnin jälkeen luoda tilaa while (j>= loc) { a[j + 1] = a[j] } a[j + 1] = valittu } } // Ohjainkoodi int main() { int a; [] = { 37, 23, 0, 17, 12, 72, 31, 46, 100, 88, 54 } int n = koko(a) / koko(a[0]), i; ); printf('Lajiteltu taulukko: '); for (i = 0; i printf('%d ', a[i]);// C-ohjelma // binäärilisäyksen # toteuttamiseen sisällyttää // Binäärihakuun perustuva funktio // löytääksesi paikan // johon kohde pitäisi lisätä // int binarySearch(int a[], int item, int low, int high) { if (korkea<= low) return (item>a [matala]) ? (matala + 1) : alhainen; int mid = (matala + korkea) / 2; if (kohde == a[mid]) return mid + 1; if (kohde> a[mid]) return binarySearch(a, item, mid + 1, high); return binarySearch(a, nimike, alhainen, keski - 1); } // Toiminto lajitella taulukko a[], jonka koko on 'n' void insertionSort(int a[], int n) { int i, loc, j, k, selected; for (i = 1; i { j = i - 1; valittu = a[i]; // etsi sijainti, johon valitut pitäisi lisätä. loc = binarySearch(a, selected, 0, j); // Siirrä kaikki elementit sijainnin jälkeen luoda tilaa while (j>= loc) { a[j + 1] = a[j] } a[j + 1] = valittu } } // Ohjainkoodi int main() { int a; [] = { 37, 23, 0, 17, 12, 72, 31, 46, 100, 88, 54 } int n = koko(a) / koko(a[0]), i; ); printf('Lajiteltu taulukko: '); for (i = 0; i printf('%d ', a[i])>>>LähtöSorted array: 0 12 17 23 31 37 46 54 72 88 100>Aika monimutkaisuus: Algoritmilla kokonaisuudessaan on edelleen huonoimman tapauksen ajoaika O(n2), koska jokaista lisäystä varten tarvitaan vaihtoja.
Toinen lähestymistapa: Seuraavassa on edellä olevan rekursiivisen koodin iteratiivinen toteutus
C++
#include>using>namespace>std;>// iterative implementation>int>binarySearch(>int>a[],>int>item,>int>low,>int>high)>{>>while>(low <= high) {>>int>mid = low + (high - low) / 2;>>if>(item == a[mid])>>return>mid + 1;>>else>if>(item>a[mid])>>low = mid + 1;>>else>>high = mid - 1;>>}>>return>low;>}>// Function to sort an array a[] of size 'n'>void>insertionSort(>int>a[],>int>n)>{>>int>i, loc, j, k, selected;>>for>(i = 1; i j = i - 1; selected = a[i]; // find location where selected should be inserted loc = binarySearch(a, selected, 0, j); // Move all elements after location to create space while (j>= loc) {a[j + 1] = a[j]; j--; } a[j + 1] = valittu; } } // Ohjainkoodi int main() { int a[] = { 37, 23, 0, 17, 12, 72, 31, 46, 100, 88, 54 }; int n = koko(a) / koko(a[0]), i; lisäysLajittele(a, n); cout<<'Sorted array: '; for (i = 0; i cout <<' '<< a[i]; return 0; } // This code is contributed by shivanisinghss2110.>>>C
merkkijono muuntaa int javassa
#include>// iterative implementation>int>binarySearch(>int>a[],>int>item,>int>low,>int>high)>{>>while>(low <= high) {>>int>mid = low + (high - low) / 2;>>if>(item == a[mid])>>return>mid + 1;>>else>if>(item>a[mid])>>low = mid + 1;>>else>>high = mid - 1;>>}>>return>low;>}>// Function to sort an array a[] of size 'n'>void>insertionSort(>int>a[],>int>n)>{>>int>i, loc, j, k, selected;>>for>(i = 1; i j = i - 1; selected = a[i]; // find location where selected should be inserted loc = binarySearch(a, selected, 0, j); // Move all elements after location to create space while (j>= loc) {a[j + 1] = a[j]; j--; } a[j + 1] = valittu; } } // Ohjainkoodi int main() { int a[] = { 37, 23, 0, 17, 12, 72, 31, 46, 100, 88, 54 }; int n = koko(a) / koko(a[0]), i; lisäysLajittele(a, n); printf('Lajiteltu taulukko: '); for (i = 0; i printf('%d ', a[i]); return 0; } // tmeid>>>Java
import>java.io.*;>class>GFG {>// iterative implementation>static>int>binarySearch(>int>a[],>int>item,>int>low,>int>high)>{>>while>(low <= high) {>>int>mid = low + (high - low) />2>;>>if>(item == a[mid])>>return>mid +>1>;>>else>if>(item>a[mid])>>low = mid +>1>;>>else>>high = mid ->1>;>>}>>return>low;>}>// Function to sort an array a[] of size 'n'>static>void>insertionSort(>int>a[],>int>n)>{>>int>i, loc, j, k, selected;>>for>(i =>1>; i j = i - 1; selected = a[i]; // find location where selected should be inserted loc = binarySearch(a, selected, 0, j); // Move all elements after location to create space while (j>= loc) {a[j + 1] = a[j]; j--; } a[j + 1] = valittu; } } // Ohjainkoodi julkinen staattinen void main (String[] args) { int a[] = { 37, 23, 0, 17, 12, 72, 31, 46, 100, 88, 54 }; int n = a. pituus, i; lisäysLajittele(a, n); System.out.println('Lajiteltu array:'); for (i = 0; i System.out.print(a[i] +' '); } } // Tämän koodin on antanut shivanisinghss2110.>>>Python 3
# iterative implementation>def>binarySearch(a, item, low, high):>>while>(low <>=>high):>>mid>=>low>+>(high>->low)>/>/>2>>if>(item>=>=>a[mid]):>>return>mid>+>1>>elif>(item>a[mid]):>>low>=>mid>+>1>>else>:>>high>=>mid>->1>>return>low>># Function to sort an array a[] of size 'n'>def>insertionSort(a, n):>>for>i>in>range>(n):>>j>=>i>->1>>selected>=>a[i]>>># find location where selected should be inserted>>loc>=>binarySearch(a, selected,>0>, j)>>># Move all elements after location to create space>>while>(j>>>loc):> >a[j>+>1>]>=>a[j]>>j>->=>1>>a[j>+>1>]>=>selected># Driver Code>a>=>[>37>,>23>,>0>,>17>,>12>,>72>,>31>,>46>,>100>,>88>,>54>]>n>=>len>(a)>insertionSort(a, n)>print>(>'Sorted array: '>)>for>i>in>range>(n):>>print>(a[i], end>=>' '>)># This code is contributed by shivanisinghss2110>>>C#
kutsua js-funktiota html:stä
using>System;>class>GFG {>// iterative implementation>static>int>binarySearch(>int>[]a,>int>item,>int>low,>int>high)>{>>while>(low <= high) {>>int>mid = low + (high - low) / 2;>>if>(item == a[mid])>>return>mid + 1;>>else>if>(item>a[mid])>>low = mid + 1;>>else>>high = mid - 1;>>}>>return>low;>}>// Function to sort an array a[] of size 'n'>static>void>insertionSort(>int>[]a,>int>n)>{>>int>i, loc, j, selected;>>for>(i = 1; i j = i - 1; selected = a[i]; // find location where selected should be inserted loc = binarySearch(a, selected, 0, j); // Move all elements after location to create space while (j>= loc) {a[j + 1] = a[j]; j--; } a[j + 1] = valittu; } } // Ohjainkoodi public static void Main (String[] args) { int []a = { 37, 23, 0, 17, 12, 72, 31, 46, 100, 88, 54 }; int n = a.Pituus, i; lisäysLajittele(a, n); Console.WriteLine('Lajiteltu array:'); for (i = 0; i Console.Write(a[i] +' '); } } // Tämän koodin on antanut shivanisinghss2110>>>
>// iterative implementation>function>binarySearch( a, item, low, high)>{>>while>(low <= high) {>>var>mid = low + (high - low) / 2;>>if>(item == a[mid])>>return>mid + 1;>>else>if>(item>a[mid])>>low = mid + 1;>>else>>high = mid - 1;>>}>>return>low;>}>// Function to sort an array a[] of size 'n'>function>insertionSort(a, n)>{>>var>i, loc, j, k, selected;>>for>(i = 1; i j = i - 1; selected = a[i]; // find location where selected should be inserted loc = binarySearch(a, selected, 0, j); // Move all elements after location to create space while (j>= loc) {a[j + 1] = a[j]; j--; } a[j + 1] = valittu; } } // Ohjainkoodi var a = [ 37, 23, 0, 17, 12, 72, 31, 46, 100, 88, 54 ]; var n = a. pituus, i; lisäysLajittele(a, n); document.write('Lajiteltu array:' + ' '); for (i = 0; i document.write(a[i] +' '); // Tämän koodin on antanut shivanisinghss2110>>>Sorted array: 0 12 17 23 31 37 46 54 72 88 100>