Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private var array:Array = [0,23,45,22,3,5,1,6,126,89,12,1];
- mergeSort(array, 0, array.length - 1);
- private function merge(array:Array, p:int, q:int, r:int):void{
- trace("start ---------------------------------------------------------- ");
- trace("basic array = " + array.toString());
- //First sorted array
- var array1:Array = [];
- //Second sorted array
- var array2:Array = [];
- //fill first array
- for (var i:int = 0; i <= q; i++){
- array1[i] = array[i + p];
- }
- //fill second array
- for (var j:int = 0; j < r - q; j++){
- array2[j] = array[j + q + 1];
- }
- //Put the marker to the end of the arrays
- array1[array1.length] = Infinity;
- array2[array2.length] = Infinity;
- //Indexes for arrays
- var i:int = 0;
- var j:int = 0;
- //Merge arrays
- for (var k:int = p; k <= r; k++){
- if (array1[i] <= array2[j]){
- array[k] = array1[i];
- i++;
- } else {
- array[k] = array2[j];
- j++;
- }
- }
- trace("first array = " + array1.toString());
- trace("second array = " + array2.toString());
- trace("final array = " + array.toString());
- trace("end ------------------------------------------------------------");
- }
- //Recursivelt sort array
- private function mergeSort(array:Array, p:int, r:int):void{
- if (p < r){
- var q:int = Math.floor((p + r) / 2);
- mergeSort(array, p , q);
- mergeSort(array, q + 1 , r);
- merge(array, p, q, r);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment