C++排序演算法之氣泡排序改進版

jfztaq發表於2018-09-16
// 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;
}


 

相關文章