12.31基数排序

基数排序思路
1.定义一个“桶”,这个桶根据元素位数的值存放元素。这个桶是一个二维数组,第一层数组存放0到9的值,第二层存放数据
2.我们需要根据最大位数的元素确定遍历次数
3.从个位数开始遍历,根据位数的值确定放入哪个桶,比如1就放进元素为一的桶。
4.我们还需要一个变量来纪律每个桶里元素的数量。这个变量可以是一个一维数组,方便记录所有桶里面元素的个数。
5.遍历需要排序的数组,根据位数上的值放入桶里,在从桶里取出数据,依次放回数组,直到遍历完。
6.继续重复操作,直到位数遍历完。

public void sort2(int[] arr){
		int max = arr[0];
		for(int m = 0; m < arr.length; m++){
			if(arr[m] > max){
				max = arr[m];
			}
		}
		int length = (max+"").length();
		for(int n = 0, f = 1; n < length; n++, f*=10){
			int[][] tong = new int[10][arr.length];
			int[] index = new int[tong.length];
			int temp = 0;
			for(int i = 0; i < arr.length; i++){
				int count = arr[i] / f % 10;
				tong[count][index[count]] = arr[i];
				index[count]++;
			}
			for(int j = 0; j < tong.length; j++){
				if(index[j] != 0){
					for(int m = 0; m < index[j]; m++){
						arr[temp] = tong[j][m];
						temp++;
					}
					index[j] = 0;
				}
			}
			temp = 0;
		}
		System.out.println(Arrays.toString(arr));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 使用pandas库读取PRSA_data_2010.1.1-2014.12.31.csv文件,查看前3行、后2行可以使用以下代码: ```python import pandas as pd data = pd.read_csv('PRSA_data_2010.1.1-2014.12.31.csv') print(data.head(3)) # 查看前3行 print(data.tail(2)) # 查看后2行 ``` 2. 删除指定列并处理缺失值可以使用以下代码: ```python data = data.drop(columns=['DEWP', 'TEMP', 'PRES', 'cbwd', 'Iws', 'Is', 'Ir']) data = data.dropna() # 删除缺失值 data.to_csv('pm25_data_2010.1.1-2014.12.31.csv', index=False) # 导出为新的csv文件 ``` 3. 选择字段pm2.5并导出为文本文件可以使用以下代码: ```python data = pd.read_csv('pm25_data_2010.1.1-2014.12.31.csv') pm25 = data[data['pm2.5'] >= 300] # 选择pm2.5值大于等于300的数据 pm25.to_csv('pm25_hazardous_data_2010.1.1-2014.12.31.txt', index=False, header=False, sep=',', line_terminator='\n') # 导出为文本文件 ``` 4. 读取文本文件并转存为Excel文件可以使用以下代码: ```python data = pd.read_csv('pm25_hazardous_data_2010.1.1-2014.12.31.txt', header=None, names=['pm2.5']) data.to_excel('pm25_hazardous_data_2010.1.1-2014.12.31.xlsx', index=False) # 转存为Excel文件 ``` 5. 统计出现最多的month、day、hour并绘制柱状图可以使用以下代码: ```python import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv('pm25_hazardous_data_2010.1.1-2014.12.31.txt', header=None, names=['pm2.5']) # 统计month、day、hour的出现频次 month_count = data.groupby(data.index.month)['pm2.5'].count() day_count = data.groupby(data.index.day)['pm2.5'].count() hour_count = data.groupby(data.index.hour)['pm2.5'].count() # 绘制柱状图 fig, ax = plt.subplots(figsize=(10, 6)) ax.bar(month_count.index, month_count.values, color='red', label='Month') ax.bar(day_count.index, day_count.values, color='green', label='Day') ax.bar(hour_count.index, hour_count.values, color='blue', label='Hour') ax.legend() ax.set_xlabel('Time') ax.set_ylabel('Frequency') ax.set_title('PM2.5 Hazardous Data') ax.set_xticks(range(1, 13)) ax.set_xticklabels(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']) plt.savefig('pm25_hazardous_month_day_hour.png', dpi=400) # 保存为png图片 plt.show() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值