zoukankan      html  css  js  c++  java
  • 工资排序问题

    题目描述

    某公司由N名员工,给定所有员工工资的清单,财务人员要按照特定的顺序排列员工的工资,他按照工资的频次降序排列,即给定清单中所有频次较高的工资将在频次较低的工资之前出现。如果相同数量的员工都有相同的工资,则将按照给定清单中该工资第一次出现的顺序排列。

    写一个算法来帮助财务人员排列员工工资顺序。

    输入

    该函数/方法的输入包括两个参数——
    num,一个整数,表示员工人数。
    salaries,一个正整数列表,表示N名员工的工资。

    输出

    返回一个正整数列表,按照员工工资的频次排序。

    约束条件

    1<=num<=10^5
    1<=salaries[i]<=10^9
    0<=i<=num

    代码

    #include <iostream>
    #include <vector>
    #include<algorithm>
    
    using namespace std;
    
    int main() {
    	int workerNum = 19;
    	//cin >> workerNum;
    	vector<int> salaries = { 1,2,4,3,3,3,4,2,5,5,5,5,6,6,6,7,8,9,10 };
    	//for (int i = 0; i < workerNum; i++) {
    	//	int ss;
    	//	cin >> ss;
    	//	salaries.push_back(ss);
    	//}
    	vector<vector<int> > SalariesCount(workerNum, vector<int>(2));
    	int count = 0;
    	for (int i = 0; i < workerNum; i++) {
    		bool flag = false;
    		if (i == 0) {
    			SalariesCount[count][0] = salaries[i];
    			SalariesCount[count][1] = 1;
    		}
    		else {
    			for (int j = 0; j < SalariesCount.size(); j++) {
    				if (salaries[i] == SalariesCount[j][0])
    				{
    					SalariesCount[j][1] = SalariesCount[j][1] + 1;
    					flag = true;
    					break;
    				}
    			}
    			if (!flag) {
    				count = count + 1;
    				SalariesCount[count][0] = salaries[i];
    				SalariesCount[count][1] = 1;
    			}
    		}	
    	}
    	//使用冒泡排序进行排序
    	for (int k = 0; k < SalariesCount.size() - 1; k++) {
    		for (int m = 0; m < SalariesCount.size() - k - 1; m++) {
    			if (SalariesCount[m][1] < SalariesCount[m + 1][1]) {
    				vector<int> temp;
    				temp = SalariesCount[m + 1];
    				SalariesCount[m + 1] = SalariesCount[m];
    				SalariesCount[m] = temp;
    			}
    		}
    	}
    	for (int l = 0; l < SalariesCount.size(); l++) {
    		if (SalariesCount[l][1] > 0) {
    			for (int n = 1; n <= SalariesCount[l][1]; n++) {
    				cout << SalariesCount[l][0] << endl;
    			}
    		}
    	}
    	return 0;
    }
    
    

    输出结果

  • 相关阅读:
    课堂作业04 2017.10.27
    课程作业 03 动手动脑 2017.10.20
    课程作业 03 2017.10.20
    HDU 3974 Assign the task
    POJ 2155 Matrix
    POJ 2481 Cows
    HDU 3038 How Many Answers Are Wrong
    CS Academy Array Removal
    POJ_1330 Nearest Common Ancestors LCA
    CF Round 427 D. Palindromic characteristics
  • 原文地址:https://www.cnblogs.com/hellovan/p/11409643.html
Copyright © 2011-2022 走看看