|
|
- void SortFB(int *seq, int start, int end);
- #define NUM 40
- int main(int argc, char* argv[])
- {
- int array[NUM], i;
- char c[2];
- for (i = 0; i < NUM; i++)
- array[i] = rand();
- printf("\n\n\nArray generated, sorting...");
- SortFB(array, 0, NUM - 1);
- printf("\r");
- for (i = 0; i < NUM; i++)
- {
- printf("%d\t", array[i]);
- if ((i + 1) % 9 == 0)
- printf("\n");
- }
- printf("\n");
- return 0;
- }
- void SortFB(int *Seq, int start, int end)
- {
- if ((end > start) && (end >= 0) && (start >= 0))
- {
- int pivot = start;
- int pivotval = Seq[pivot];
- int i = start, j = end;
- int p;
- while (i < j)
- {
- while ((i < j) && (Seq[j] >= pivotval))
- j--;
- if (i == j)
- break;
- p = Seq[j];
- Seq[j] = Seq[pivot];
- Seq[pivot] = p;
- pivot = j;
- i++;
- while ((i < j) && (Seq[i] <= pivotval))
- i++;
- if (i == j)
- break;
- p = Seq[i];
- Seq[i] = Seq[pivot];
- Seq[pivot] = p;
- pivot = i;
- j--;
- }
- //sort low
- SortFB(Seq, 0, pivot - 1);
- //sort high
- SortFB(Seq, pivot + 1, end);
- }
- }
复制代码
我知道贴代码每人肯看,但是我的代码那么少,而且风格也不错 大家就帮我看一下吧
我说的速度慢是指我排序40个数字居然画了十几秒的时间,我想486也不需要那么长的时间啊 [em24] |
|