先用最小的数排序向量,做完全相反的事
本文关键字:向量 排序 | 更新日期: 2023-09-27 17:51:22
我一整天都在尝试让这个向量/对象排序器,即使我交换了符号(<似乎什么也没发生。我有一些随机排列的整数,程序的目标是按大小对它们进行排序。我已经在纸上画了草图,以便更好地概述,但当我试图按照降序从低到高进行排序时,似乎是从高到低。我希望密码里的瑞典人不会打扰你。任何帮助都会很感激。谢谢你。>
for (int i = 0; i < 25; i++)
{
for (int a = i; a < 25; a++)
{
int ettan = price[i];
int tvåan = price[a];
if (ettan > tvåan)
{
dryck tmp = new dryck(null, 0, null);
tmp = drycker[i];
drycker[i] = drycker[a];
drycker[a] = tmp;
continue;
}
}
}
编辑:忘记添加,它应该比较第一个整数[0]与[1][2]等,直到它找到一个低于[i],然后相互交换,所以较低的整数被放在第一个位置等
最初c#中的vectors
被称为Arrays
;-)
有两个重要的数组:
drycker: Prices:
Cola -> 25
Fanta -> 20
Sprite -> 30
当你比较可乐和芬达时,新的列表是这样的:
drycker: Prices:
Fanta -> 25 -> the price for Fanta is now 25
Cola -> 20
Sprite -> 30
关键是你在比较产品和它们的位置,你改变了产品,但没有改变它的价格。答案:也要更改价格,以保持数组的一致性。
其他建议:
也许一个数组(drycker
)是足够的(取决于代码)。然后你可以直接比较:
if( ((dryck) drycker[i]).price > ((dryck) drycker[a]).price)
或者你可以使用Linq和List:
List<dryck> drycker = new List<dryck>(); //strongly typed lists are always recommended
drycker.Sort(x => x.price);
最后的建议可能包含一些新的东西给你。你可以搜索List
, Linq
和Lambda expressions
来深入一点。但这只是"高质量"的解决方案:)