按日期排序

时间:2013-06-13 16:56:40

标签: c sorting date-sorting

很抱歉在我解决其他问题之前的另一个话题。这个问题比较大。我不知道是否有人会理解我的代码,因为我将其翻译成英文。该程序的工作方式类似于来自互联网的订单列表或类似的东西。您可以添加订单,删除订单,按ID或日期对其进行排序,您可以保存订单并加载它们。按日期排序是我的问题。例如,我添加日期,如2013年,2011年和2012年。当我尝试对它们进行排序时,没有任何反应,它们保持相同的顺序。如果有人理解这个请告诉我这是什么问题?这是一个学校项目,我需要修复它直到明天。有人可以帮我这个吗?

// according = 1 (Date) 2 = (Price)
void sort(int accor)
{
    int i,j,replace=0;
    ORDER *Pom;

    for(i=0;i<Piece-1;i++){
        for(j=0;j<Piece-1;j++){
            if(according == 1){
                if(strcmp(Item[j]->Date, Item[j+1]->Date) > 0) 
                    replace = 1; 
                else 
                    replace = 0;
            }else if(according == 2){
                if(Item[j]->Price > Item[j+1]->Price ) 
                    replace = 1; 
                else 
                    replace = 0;
            }
            if(replace){
                Pom = Item[j];
                Item[j] = Item[j+1];
                Item[j+1] = Pom;
            }

1 个答案:

答案 0 :(得分:0)

将循环更改为如下所示:

for (i = (Piece - 1); i > 0; i--)
{
  for (j = 1; j <= i; j++)
  {
  // compare and swap
  }
}

来源:http://www.algorithmist.com/index.php/Bubble_sort.c