eg1.cpp

来自「C++课程更学习...对于初学者很有好出」· C++ 代码 · 共 92 行

CPP
92
字号
// eg1_冒泡.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

// 冒泡排序
void BubbleSort(int nA[], int nCount)
{
	for (int i=0; i<nCount-1; i++)
	{
		for (int j=nCount-1; j>i; j--)
		{
			if (nA[j] < nA[j-1])
			{
				int nTemp = nA[j];
				nA[j] = nA[j-1];
				nA[j-1] = nTemp;
			}
		}

	}
}

// 选择排序
void SelectSort(int nA[], int nCount)
{
	for (int i=0; i<nCount-1; i++)
	{
		// 查找最小数将其下标保存到k
		int k = i;
		for (int j=i; j<nCount; j++)
		{
			if (nA[j] < nA[k])
				k = j;
		}

		// 交换nA[i]与nA[k]
		int nTemp = nA[i];
		nA[i] = nA[k];
		nA[k] = nTemp;
	}
}

// 快速排序
int compare(const void *elem1, 
			const void *elem2)
{
	int* pA = (int*)elem1;
	int* pB = (int*)elem2;
	if (*pA < *pB)
		return -1;
	else if (*pA == *pB)
		return 0;
	else 
		return 1;
}

int main(int argc, char* argv[])
{
//	int nA[10] = {1,3,5,7,9,2,4,6,8,0};

#if 1
	int nA[20] = {0};
	srand(time(NULL));
	for (int k=0; k<1000; k++)
	{
		nA[k] = rand();
	}
#endif

	// 冒泡排序
	//BubbleSort(nA, sizeof(nA)/sizeof(int));

	// 选择排序
	SelectSort(nA, sizeof(nA)/sizeof(int));

	// 快速排序
	//qsort(nA, sizeof(nA)/sizeof(int), sizeof(int), compare);

	for (int i=0; i<sizeof(nA)/sizeof(int); i++)
	{
		printf("%d ", nA[i]);
		if ((i+1) % 10 == 0)
			printf("\n");
	}

	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?