【问题】基数排序的同一代码,在notepad++和vs2017上运行结果不一样?

#include "iostream"
#include 
#include 
#include 
using namespace std;

/**************** 基数排序 ************************/
          
void SortByRadix(int arr[], int len)
{         
	int maxNum = arr[0]; //最大值
	for (int i = 1; i < len; i++)
	{     
		if (maxNum < arr[i])
			maxNum = arr[i];
	}     
          
	int k = 0;
	while (maxNum) {
		std::vector> R;
		R.resize(10);
		for (int i = 0; i < len; i++)
		{ 
			int m = (arr[i] / (int(pow(10, k)))) % 10; //跟据余数收集
			R[m].push_back(arr[i]);
		} 
		int x = 0;
		for (int i = 0; i < 10; i++)
		{ 
			for (int j = 0; j < R[i].size(); j++)
			{
				arr[x] = R[i][j];
				x++;
			}
		} 
		maxNum = maxNum / 10;
		k++; //
	}     
}         
          
int main()
{         

	int n = 22;
	int arr[22] = { 66, 22, 36, 55, 12, 11, 99, 77, 44, 88, 8, 6 , 11 , 25, 33, 39, 49, 48, 111, 5, 8, 9};
          

	SortByRadix(arr, n); //基数排序
          
          
	for (int i = 0; i < n; i++)
	{     
		cout << arr[i] << ' ';
	}     
          
	system("pause");
	return 0;
}         

最后运行结果

在vs2017中

5 6 8 8 9 11 11 12 22 25 33 36 39 44 48 49 55 66 77 88 99 111 请按任意键继续. . .

在notepad++上

5 6 8 8 9 11 11 12 22 25 33 36 39 44 48 49 55 66 77 88 111 99 请按任意键继续. . .

有知道遇到类似问题或者指导什么原因得分盆友,欢迎留言交流

你可能感兴趣的:(敲敲敲代码)