There are tones of posts online that cover bubble sort. Lately I’ve been brushing up on my Java and also I like Haxe so here are two videos covering bubble sort in each of the two languages.
Java Bubble Sort Algorithm
import java.util.Arrays;
/**
* Created by matthew.wallace on 2/10/17.
*/
public class Main {
public static void main(String[] args) {
int[] list = {4,6,2,90,245,3,21,356,42};
System.out.println("before sort : " + Arrays.toString(list));
int i,j,temp;
for (i = 0; i < list.length - 1 ; i++) {
for (j = 0; j < list.length - 1 - i ; j++) {
if( list[j] > list[j + 1]) {
temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
System.out.println("after sort : " + Arrays.toString(list));
}
}
Haxe Bubble Sort Algorithm
package ;
class Main {
public function new() {
var list:Array<Int> = [7,5,1,2,45,37,42,183,3];
var temp:Int;
trace("unsorted list : "+ list);
for(i in 0...list.length - 1) {
for(j in 0...list.length - 1 - i) {
if ( list[j] > list[j + 1]) {
temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
trace("sorted list : "+ list);
}
public static function main() {
new Main();
}
}
This will be the first in a series of posts on some common algorithms you can use to solve various problem. I find it super helpful to do one or two of these per day just to keep things fresh in your mind. These are especially helpful to know during coding interviews.
Queue from Stack Java Example.
Queue from Stack Haxe Example.
So what is a “Stack”. Well, it’s a container of objects to put it simply. These objects are put in using the last-in first-out out method. To explain this in layman terms lets imagine you have a box and you put in a nickel, a dime, a penny and a quarter in that order. You come back to the box a few seconds later and reach in one at a time to pull out the money that you put in. The order that you can expect the money would be in reverse because when removing from a stack you must remove from the top down. So the first item to leave the box would be the quarter, then the penny, then the dime, then the nickel.
Here is an example of creating and adding items to a Stack in Java.
import java.util.Stack;
public class Queue {
private Stack<Integer> newStack;
public Queue() {
oldStack = new Stack<Integer>();
newStack = new Stack<Integer>();
}
public boolean enqueue(int element) {
boolean rvalue = true;
try {
newStack.push(new Integer(element));
} catch (Exception error) {
rvalue = false;
System.out.println("There was an error adding the item to the Queue : " + error.getMessage());;
}
return rvalue;
}
}
Here is an example in Haxe of a Stack using a typed Array.
package ;
class Queue {
var newStack:Array<Int> = [];
public function new() {
}
public function enqueue(element:Int):Bool {
var rvalue:Bool = true;
try {
newStack.push(element);
} catch (error:Error) {
rvalue = false;
trace("Something went wrong with added an element to the Queue: " + error);
}
return rvalue;
}
}
Next we talk about the concept of a “Queue”. The Queue is a container that uses the first-in first-out principle. In our example above when explaining what a stack does, in order to implement the same example regarding a queue you would have a box and you would place a nickel, a dime, a penny and a quarter into the box in that order and then when removing them you would expect the money to come out of the box in the order in which you placed it, so you would see a nickel come out of the box first followed by the dime, then the penny, then lastly the quarter.
Here is an example of using some Queue logic with a Java Stack.
import java.util.Stack;
public class Queue {
private Stack<Integer> oldStack;
private Stack<Integer> newStack;
private int topElement = -1;
public Queue() {
oldStack = new Stack<Integer>();
newStack = new Stack<Integer>();
}
public Integer dequeue() {
topElement = -1;
if(oldStack.empty()) {
while(!newStack.empty()) {
topElement = newStack.peek();
oldStack.push(topElement);
newStack.pop();
}
}
if(!oldStack.empty()) {
Integer i = oldStack.peek();
topElement = i.intValue();
oldStack.pop();
}
return topElement;
}
}
Here is an example of creating Queue logic with a Haxe typed Array.
package ;
import haxe.io.Error;
class Queue {
var oldStack:Array<Int> = [];
var newStack:Array<Int> = [];
var topElement:Int = -1;
public function new() {
}
public function dequeue():Int {
topElement = -1;
if(oldStack.length <= 0) {
while(newStack.length > 0) {
topElement = newStack.pop();
oldStack.push(topElement);
}
}
if(oldStack.length > 0) {
topElement = oldStack.pop();
}
return topElement;
}
}
Video that I found that covers how to use Neko / Haxe to create a web service and uses templates to create web pages. Pretty good place to start in case you where wondering how this works.
In my last post, I discussed why Proletariat chose to use Haxe and Unity together to build World Zombination. Now, I’d like to introduce you to the Haxe library we built that allows you to write Unity code: HUGS. We’re making it freely available on GitHub so you can use Haxe in your…
Ran across this github repo for some native extensions for Haxe projects. I’ve not gotten a chance to look at them or implement any of them. I’d love to hear if any of you do and what you think of them.
This demo shows the effects that can be accomplished with FlxTrailArea. For everyFlxSprite that is added to the area, a trail effect will be rendered on the area. It’s more efficient than a regular FlxTrail due to the fact that it only uses a single bitmap.
I found this post really valuable if you are needing to use someones existing SWF library in a haxe project. Step 3 and 4 is the part I was looking for so here you go.
Step 3
Open up the command-line prompt. You should already have Haxe installed if you are reading this, so this magical command should work for you:
This command beautifully creates empty classes (like header reference files) for all the stuff in the library you want to use.
Step 4
The above command will have generated a directory full of .HX source files. You can ignore most of the base system stuff (it’ll generate classes for basic things like array.hx and Sprite.hx) and instead pick out the bits you need – for me, that was the /com/company/extensionName/ directory. Copy this directory to your project’s source folder.