摘要:
1)判断数据在各位的大小,排列数据;2)根据1的结果,判断数据在十分位的大小,排列数据。如果数据在这个位置的余数相同,那么数据之间的顺序根据上一轮的排列顺序确定;3)依次类推,继续判断数据在百分位、千分位......上面的数据重新排序,直到所有的数据在某一分位上数据都为0。#include #include #include #include int pre_process_data(int array[], int length, int weight){ int index; int value = 1; assert(NULL != array && 0 != lengt 阅读全文
posted @ 2014-02-28 11:28
程序员大叔的博客
阅读(190)
评论(0)
推荐(0)
摘要:
#include #include void swap(int *a, int *b){ int c; c = *a; *a = *b; *b = c;}void set_sorted_value(int array[], int length){ int index = length; if(length 1) { if(array[index >> 1] >= array[index]) break; swap(&(array[index >> 1]), &array[index]); index >>= 1; }}void con 阅读全文
posted @ 2014-02-28 10:11
程序员大叔的博客
阅读(187)
评论(0)
推荐(0)
摘要:
1)把0~length-1的数组分成左数组和右数组 2)对左数组和右数组进行迭代排序 3)将左数组和右数组进行合并,那么生成的整个数组就是有序的数据数组(关键)#include #include #include #include void merge(int *array, int start, int middle, int end){ int left = start; int right = middle + 1; int length = end - start + 1; int *p = malloc(sizeof(int) * length); assert(NULL != p. 阅读全文
posted @ 2014-02-28 08:58
程序员大叔的博客
阅读(214)
评论(0)
推荐(0)
摘要:
把数组的第一个数据作为比较的原点,比该数据小的数据排列在左边,比该数据大的数据排列在右边#include #include #include #include void swap(int *a, int *b){ int c; c = *a; *a = *b; *b = c;}void _quick_sort(int array[], int start, int end){ int middle; if(start > end) return; middle = get_middle1(array, start, end); //middle = get_middle2(array, 阅读全文
posted @ 2014-02-28 08:53
程序员大叔的博客
阅读(201)
评论(0)
推荐(0)
浙公网安备 33010602011771号