C++排序算法之冒泡排序改进版

// BuddySort.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include "pch.h"
#include <iostream>
#include <time.h>
#include <sys/timeb.h>

#define MAX 10000

long getSystemTime() {
	struct timeb tb;
	ftime(&tb);
	return tb.time * 1000 + tb.millitm;
}

//交换函数
void swap(int *a, int *b) {
	int temp;
	temp = *a;
	*a = *b;
	*b = temp;

}

//冒泡排序
void BubbleSort(int arr[], int len) {

	
	int flag = 0;
	for (int i = 0; i < len && flag == 0; i++)
	{
		flag = 1;
		for (int j = 0; j < len -1 ; j++)
		{
			if (arr[j+1]< arr[j])
			{
				swap(&arr[j + 1], &arr[j]);
				flag = 0;
			}
		}

	}


}


void PrintArray(int arr[],int len) {
	for (int  i = 0; i < len; i++)
	{
		printf("%d ",arr[i]);

	}
	printf("\n");
}

int main()
{
	srand((unsigned int)time(NULL));

	int data[MAX] = {0};
	for (int i = 0; i < MAX; i++)
	{
		data[i] = rand() % MAX;
	}

	//PrintArray(data,MAX);
	long t_start = getSystemTime();
	BubbleSort(data, MAX);
	long t_end = getSystemTime();
	printf("冒泡排序%d个元素所需时间:%ld.",MAX,t_end -t_start);
	//PrintArray(data, MAX);

	system("pause");
	return 0;
}


发布了27 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/jfztaq/article/details/82729001