/* * worker.c * * Created on: 2010-7-1 * Author: panfei */#include <stdio.h>void swap (int *x, int *y){ int temp; temp = *x; *x = *y; *y = temp;}// 插入排序 升序void insertsort(int arr[], int size){ int i, j; int to_insert; for (i=1; i < size; i++) { to_insert = arr[i]; for (j=i-1; j>=0 && arr[j] > to_insert; j--) { arr[j+1] = arr[j]; } arr[j+1] = to_insert; }}// 选择排序 降序void selectsort(int arr[], int size){ int i, j; for (i=0; i<size; i++) { for (j = i+1; j<size; j++) { if (arr[i] < arr[j]) { swap(&arr[i], &arr[j]); } } }}// 冒泡排序 升序void bubblesort(int arr[], int size){ int i, j; for (i=0; i<size; i++) { for (j=0; j<size-1-i; j++) { if (arr[j] > arr[j+1]) { swap (&arr[j], &arr[j+1]); } } }}// 快速排序void quicksort(int arr[], int left, int right){ if(right > left) { int storeIndex = left; int i; swap(&arr[(left+right)/2], &arr[right]); for(i=left; i<right; i++) { if(arr[i] > arr[right]) { swap(&arr[i], &arr[storeIndex]); ++storeIndex; } } swap(&arr[storeIndex], &arr[right]); quicksort(arr, left, storeIndex-1); quicksort(arr, storeIndex+1, right); }}