bitzsk 发表于 2013-1-26 12:29:42

sort 排序

selection sort:
void selectionSort(int arr[], int n) {       int i, j, minIndex, tmp;         for (i = 0; i < n - 1; i++) {             minIndex = i;             for (j = i + 1; j < n; j++)                   if (arr < arr)                         minIndex = j;             if (minIndex != i) {                   tmp = arr;                   arr = arr;                   arr = tmp;             }       } }
quick sort:
ref:http://www.algolist.net/Algorithms/Sorting/Quicksort
void quickSort(int arr[], int left, int right) {       int i = left, j = right;       int tmp;       int pivot = arr[(left + right) / 2];       /* partition */       while (i <= j) {             while (arr < pivot)                   i++;             while (arr > pivot)                   j--;             if (i <= j) {                   tmp = arr;                   arr = arr;                   arr = tmp;                   i++;                   j--;             }       };       /* recursion */       if (left < j)             quickSort(arr, left, j);       if (i < right)             quickSort(arr, i, right); }
bubble sort:
void bubbleSort(int numbers[], int array_size){int i, j, temp;   for (i = 1; i < array_size; i++){    for (j = 0; j < array_size - i; j++)    {      if (numbers > numbers)      {      temp = numbers;      numbers = numbers;      numbers = temp;      }    }}}

merge sort:
public int[] msort(int[] a) {    if (a.Length > 1) {      int min = a.Length / 2;      int max = min;      int[] b = new int;      int[] c = new int; // dividing main array into two half arrays      for (int i = 0; i < min; i++) {            b = a;      }      for (int i = min; i < min + max; i++) {            c = a;      }      b = msort(b);      c = msort(c);      int x = 0;      int y = 0;      int z = 0;      while (b.Length != y && c.Length != z) {            if (b < c) {                a = b;                //r--                x++;                y++;            } else {                a = c;                x++;                z++;            }      }      while (b.Length != y) {            a = b;            x++;            y++;      }      while (c.Length != z) {            a = c;            x++;            z++;      }    }    return a;}
页: [1]
查看完整版本: sort 排序