1,这个可能和M3的分支预测有关,硬件可能是准确的,只是有时候结果不完全一致而已.如果想精确计时,自己弄个定时器,就绝对正确了.
2,百度比较好:http://zhidao.baidu.com/question/152644373.html
http://baike.baidu.com/view/115472.htm
C语言程序:
/* 快 速 排 序 */
#include "stdio.h"
void QuickSort(int e[], int first, int end)
{
int i=first,j=end,temp=e[first];
while(i
{
while(i>
=temp)
j--;
e=e[j];
while(i><=temp)
i++;
e[j]=e;
}
e=temp;
if(first
QuickSort(e,first,i-1);
if(end>i+1)
QuickSort(e,i+1,end);
}
void main()
{
int arr[] = {49, 38, 65, 97, 76, 13, 27, 49};
int len = 8;
int i;
printf("before sortn");
for(i=0; i
printf("%d ", arr);
printf("n");
QuickSort(arr, 0, len-1);
printf("after sortedn");
for(i=0; i>
printf("%d ", arr);
printf("n");
}>
1,这个可能和M3的分支预测有关,硬件可能是准确的,只是有时候结果不完全一致而已.如果想精确计时,自己弄个定时器,就绝对正确了.
2,百度比较好:http://zhidao.baidu.com/question/152644373.html
http://baike.baidu.com/view/115472.htm
C语言程序:
/* 快 速 排 序 */
#include "stdio.h"
void QuickSort(int e[], int first, int end)
{
int i=first,j=end,temp=e[first];
while(i
{
while(i>=temp)
j--;
e=e[j];
while(i><=temp)
i++;
e[j]=e;
}
e=temp;
if(first
QuickSort(e,first,i-1);
if(end>i+1)
QuickSort(e,i+1,end);
}
void main()
{
int arr[] = {49, 38, 65, 97, 76, 13, 27, 49};
int len = 8;
int i;
printf("before sortn");
for(i=0; i
printf("%d ", arr);
printf("n");
QuickSort(arr, 0, len-1);
printf("after sortedn");
for(i=0; i>
printf("%d ", arr);
printf("n");
}>
举报