Sort an integer array
![Task](http://static.miraheze.org/rosettacodewiki/thumb/b/ba/Rcode-button-task-crushed.png/64px-Rcode-button-task-crushed.png)
You are encouraged to solve this task according to the task description, using any language you may know.
Sort an array (or list) of integers in ascending numerical order. Use a sorting facility provided by the language/library if possible.
AppleScript
This routine was copied directly from Apple.com and therefore is probably under their copyright, so: Copyright Apple, Inc. 2007. The reason I posted this is simply because this the best routine available without the use of an additional library.
ASCII_Sort({5, 2, 4, 3, 2, 1}) as list of integer on ASCII_Sort(my_list) set the index_list to {} set the sorted_list to {} repeat (the number of items in my_list) times set the low_item to "" repeat with i from 1 to (number of items in my_list) if i is not in the index_list then set this_item to item i of my_list as text if the low_item is "" then set the low_item to this_item set the low_item_index to i else if this_item comes before the low_item then set the low_item to this_item set the low_item_index to i end if end if end repeat set the end of sorted_list to the low_item set the end of the index_list to the low_item_index end repeat return the sorted_list end ASCII_Sort
C
Compiler: GCC 4.0.1
#include <stdlib.h> int intcmp(const void *i1, const void *i2) { int l = *(int *)i1, r = *(int *)i2; return l >= r ? l > r ? 1 : 0 : -1; } int main() { int nums[5] = {2,4,3,1,2}; qsort(nums, 5, sizeof(int), intcmp); }
C++
Compiler: GCC 4.0.1
With a simple array:
#include <algorithm> int main() { int nums[] = {2,4,3,1,2}; std::sort(nums, nums+5); }
With a std::vector:
#include <algorithm> #include <vector> int main() { std::vector<int> nums; nums.push_back(2); nums.push_back(4); nums.push_back(3); nums.push_back(1); nums.push_back(2); std::sort(nums.begin(), nums.end()); }
With a std::list:
#include <list> int main() { std::list<int> nums; nums.push_back(2); nums.push_back(4); nums.push_back(3); nums.push_back(1); nums.push_back(2); nums.sort(); }
Haskell
Interpreter: GHCi 6.6
import List nums = [2,4,3,1,2] sorted = sort nums
Java
import java.util.Arrays; public class example { public static void main(String[] args) { int[] nums = {2,4,3,1,2}; Arrays.sort(nums); } }
JavaScript
Interpreter: Firefox 2.0
JavaScript sorts lexically by default, so "10000" comes before "2". To sort numerically, a custom comparator is used.
function numberSorter(a, b) { return a - b; } var numbers = [20, 7, 65, 10, 3, 0, 8, -60]; numbers.sort(numberSorter); alert( numbers );
Objective-C
Compiler: GCC 4.0.1 (apple)
- (void)example { NSArray *nums, *sorted; nums = [NSArray arrayWithObjects: [NSNumber numberWithInt:2], [NSNumber numberWithInt:4], [NSNumber numberWithInt:3], [NSNumber numberWithInt:1], [NSNumber numberWithInt:2], nil]; sorted = [nums sortedArrayUsingSelector:@selector(compare:)]; }
Perl
Interpreter: perl 5.8.6
@nums = (2,4,3,1,2); @sorted = sort {$a <=> $b} @nums;
PHP
Interpreter: PHP 4.4.4 CLI
<?php $nums = array(2,4,3,1,2); sort($nums); ?>
Python
Interpreter: Python 2.3
nums = [2,4,3,1,2] nums.sort()
Note: The array nums is sorted in place.
Interpreter: Python 2.4 (and above)
You could also use the built-in sorted() function
nums = sorted([2,4,3,1,2])
Ruby
Interpreter: ruby 1.8.4
nums = [2,4,3,1,2] sorted = nums.sort
UNIX Shell
Interpreter: Bash 2.05b
nums=(2 4 3 1 2) sorted=($(for i in ${nums[*]}; do echo $i; done | sort -n))