// -*- mode: java; -*- // An implementation of // https://sampleprograms.io/projects/bubble-sort/ // // Bubble sort, with reading (parsing) and writing (formatting) the data. val sort = { !sys.aryi64 nums -> var done = false; while( !done ) { done = true; for( var i = 0; i < nums.len-1; i++ ) if( nums.buf[i] > nums.buf[i+1] ) { int tmp = nums.buf[i]; nums.buf[i] = nums.buf[i+1]; nums.buf[i+1] = tmp; // Swap done = false; } } }; // Read from stdin a line of the form "[ 4, 3, 2, 1]" and print it sorted. val main = { -> // Parse array of numbers from stdin var nums = sys.parseAryI64( sys.io.stdin() ); if( !nums ) { sys.io.p("stdin must look like [4, 3, 2, 1]"); return 1; } // Bubble sort array of integers sort(nums); // Print a list of numbers to stdout nums.str().write(1); return 0; };