「加权排序java」加权排序矩阵
今天给各位分享加权排序java的知识,其中也会对加权排序矩阵进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
JAVA 中 加权什么意思
数据结构中的吧,没加权的比如a到b是一条线,加权就是这条线段ab有一个额外的附加含义,比如他长10,或者经过他需要时间为14,等等。加权就是使得一个没意义的东西变得可以权衡了,比如ab长度为3,cd长度为4,那么ab和cd都是加权的了,他们的权值就分别是3和4,他们两者也就可以权衡了,也就在某个情况下有个比较的参考了。
java随机数怎么做加权
class C9
{
static int i;
static void sui()
{
System.out.println("\n 排序前:");
float [] a=new float[30];
for(i=0;i30;i++)
{
a[i]=(float)(Math.random()*20);//获得30个随机数
System.out.print(" "+a[i]+" ");
if((i+1)%3==0)
System.out.println();
}
pai(a);
}
static void pai(float a[])
{
System.out.println("\n 排序后:");
for(i=0;i29;i++) //冒泡法排序
{
for(int j=0;j29-i;j++)
{
if(a[j]a[j+1])
{
float t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(i=0;i30;i++)
{
System.out.print(" "+a[i]+" ");
if((i+1)%3==0)
System.out.println();
}
suip(a); //把数组传给下个函数
}
static void suip(float a[]) //把函数打乱,
{
int k=1;
int l=0;
int d;
int [] b=new int[30];
float [] c=new float[30];
c[0]=a[0];
b[0]=(int)(Math.random()*30);
while(k30)
{
d=(int)(Math.random()*30); //随机一个30内整数给d
for(l=0;lk;l++)
{
if(b[l]==d) //d的数和数组里的数比较,若有重复,则退出for循环,返还上面重新给d赋值
break;
if(l==k-1) //把d里的数写进c数组
{
b[k]=d;
c[d]=a[k];
k++;
}
}
}
System.out.println("\n打乱后:");
for(i=0;i30;i++)
{
d=b[i]; //数组的值给c数组的下标,把a数组的值给c数组
c[d]=a[i];
System.out.print(" "+c[i]+" ");
if((i+1)%3==0)
System.out.println();
}
}
public static void main(String[] args)
{
sui();
}
}
设计一种java数据结构,按照权重进行排序
public enum SortBy {
Number,
Weights1,
Weights2
}
import java.util.Comparator;
public class MyComparator implements ComparatorStudent{
private SortBy sortBy;
public MyComparator (SortBy sortBy){
this.sortBy = sortBy;
}
@Override
public int compare(Student s1, Student s2) {
switch (this.sortBy) {
case Weights1:
return s1.getWeights1() - s2.getWeights1();
case Weights2:
return s1.getWeights2() - s2.getWeights2();
default:
return s1.getNumber() - s2.getNumber();
}
}
}
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
public class Student {
private int number;
private int weights1;
private int weights2;
public Student(int number, int weights1, int weights2) {
this.number = number;
this.weights1 = weights1;
this.weights2 = weights2;
}
public int getNumber() {
return this.number;
}
public int getWeights1() {
return this.weights1;
}
public int getWeights2() {
return this.weights2;
}
public static void main(String[] args){
final Student s1 = new Student(1, 20, 300);
final Student s2 = new Student(2, 10, 100);
final Student s3 = new Student(3, 30, 200);
final ListStudent array = new LinkedListStudent();
array.add(s1);
array.add(s2);
array.add(s3);
final ComparatorStudent numberComparator = new MyComparator(SortBy.Number);
Collections.sort(array, numberComparator);
System.out.println("sort by number");
System.out.print("Number: ");
for(Student s: array){
System.out.print(s.getNumber() + " ");
}
System.out.println("\n\n");
final ComparatorStudent weights1Comparator1 = new MyComparator(SortBy.Weights1);
System.out.println("sort by weights1");
System.out.print("Number: ");
Collections.sort(array, weights1Comparator1);
for(Student s: array){
System.out.print(s.getNumber() + " ");
}
System.out.println("\n\n");
final ComparatorStudent weights2Comparator = new MyComparator(SortBy.Weights2);
System.out.println("sort by weights2");
System.out.print("Number: ");
Collections.sort(array, weights2Comparator);
for(Student s: array){
System.out.print(s.getNumber() + " ");
}
System.out.println("\n\n");
}
}
sort by number
Number: 1 2 3
sort by weights1
Number: 2 1 3
sort by weights2
Number: 2 3 1
如何在java代码中设置权重
editText.setLayoutParams(new LinearLayout.LayoutParams(width, height, weight)); 只有LinearLayout才有layout_weight属性。
加权排序?
加权排序法:所谓的加权排序法,就是将你认为的重要的因素加以排序,根据重要的程度赋予不同的值,然后和当前的结果相乘,得到一个新的结果。举个例子:现在某所学校要进行奖学金评选,设定期中考试占70%,期末考试占30%。这时候有两个学生,A期中考试得100分,期末考试得90分,B期中考试得90分,期末考试得100分。如果按照平均分来看,两个学生不分上下,但是通过加权方式的计算,A综合得分97分,B得分93分。A排名在B前面。
关于加权排序java和加权排序矩阵的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-23,除非注明,否则均为
原创文章,转载请注明出处。