编辑代码

#include <iostream>

using namespace std;

int findMax(int arr[], int len) {
    int max = arr[0];
	for (int i = 0; i < len; i++)
	{
		if (arr[i] > max)
		{
			max = arr[i];
		}
	}
	return max;
	
}
//输入50,返回2
//输入100,返回3 
int calBitCount(int max) {
	
}
// 输入(50,0),返回0
// 输入(50,1),返回5 
int getBitValue (int value, int bit) {
	
}


void radixSort(int arr[], int len) {
	
	//1. 找出最大值,计算出需要排序的位 
	int max = findMax(arr, len);
	int bitCount = calBitCount(max);
	
	
	//2. 创建排序数组
	int radixCount = 10;
	int* count = new int[radixCount]();
	int *tempArray = new int[len]();
	
	//3. 对每一位进行排序 
	for (int b = 0; b < bitCount; ++b) {
		//3.1 清空排序数组,把每个值赋予0 
		
		//3.2 统计计数数组下标对应元素个数
		for (int i = 0; i < len; ++i) {
			int bitValue = getBitValue(arr[i], b)
		} 
		
		//3.3 累计算出小于等于计数数组下标对应元素的个数 
		for (int c = 0; c < radixCount; ++c) {
		}
		
		//3.4 利用累加值和临时数组对对应的位进行排序
		for (int i = len - 1; i >=0; --i) {
			
		} 
		
		// 3.5 临时数组数据拷贝回原数组 
        for (int j = 0; j < len; j++)
		{
			arr[j] = tempArr[j];
		}
	} 
}

void printArray(int arr[], int len) {
    for (int i = 0; i < len; i++)
	{
		cout << array[i] << " ";
}
	cout << endl;
}

int main(){
	int arr[] = {62,95,64,33,77,90};
	int len = sizeof(arr)/sizeof(int);
	
	printArray(arr,len);
	radixSort(arr, len);
	printArray(arr,len);
}