一:冒泡排序
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/timeb.h>
#define MAX 10000
long getTime()
{
struct timeb tb;
ftime(&tb);
return tb.time * 1000 + tb.millitm;
}
void Bubble_Sort(int *arr,int len)
{
int flag = 0;
for (int i = 0; (i < (len - 1))&&flag==0; i++)
{
flag = 1;
for (int j = 0; j < len - i - 1; j++)
{
if (arr[j]>arr[j+1])
{
flag = 0;
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
void PrintArr(int* arr,int len)
{
for (int i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
}
int main(void)
{
int arr[MAX];
srand((unsigned int)time(NULL));
for (int i = 0; i < MAX; i++ )
{
arr[i] = rand()%MAX;
}
long t_start = getTime();
Bubble_Sort(arr, MAX);
long t_end = getTime();
printf("\n");
printf("\n");
printf("冒泡排序共花费%ld毫秒\n", t_end - t_start);
}
二:选择排序
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/timeb.h>
#define MAX 10
long getTime()
{
struct timeb tb;
ftime(&tb);
return tb.time * 1000 + tb.millitm;
}
void PrintArr(int* arr, int len)
{
for (int i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
}
void exchange(int* a,int*b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void Select_Sort(int *arr,int len)
{
for (int i = 0; i < len - 1;i++)
{
int min = i;
for (int j = i + 1; j < len;j++)
{
if (arr[min]>arr[j])
{
min = j;
}
}
if (min!=i)
{
exchange(&arr[i], &arr[min]);
}
}
}
int main(void)
{
srand((unsigned int)time(NULL));
int arr[MAX];
for (int i = 0; i < MAX; i++)
{
arr[i] = rand() % MAX;
}
long t_start = getTime();
Select_Sort(arr, MAX);
long t_end = getTime();
printf("\n");
printf("\n");
printf("冒泡排序共花费%ld毫秒\n", t_end - t_start);
}