Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 38

0
votes
answers
22 views
+10

JML中的Java排序方法

0

我需要JML的排序方法我嘗試過Insertion Sort,但我不知道需要什麼,並確保或維護我需要的東西。請幫忙。 我需要// @需要,// @確保和// @維護。JML中的Java排序方法

public class InsertionSort 

{ 

void sort(int arr[]) 
{ 
    int n = arr.length; 
    for (int i=1; i<n; ++i) 
    { 
     int key = arr[i]; 
     int j = i-1; 
     while (j>=0 && arr[j] > key) 
     { 
      arr[j+1] = arr[j]; 
      j = j-1; 
     } 
     arr[j+1] = key; 
    } 
} 
} 
沙发
0
0

以下內容確保升序並保留重複。

//@ assignable arr[*]; 
//@ requires arr != null; 
//@ ensures (forall int i; 0 <= i && i <= arr.length-1; arr[i] <= arr[i+1]) && 
//@   (forall int i; 0 <= i && i <= arr.length; 
//@   (
um_of int j; 0 <= j && j <= arr.length; 
//@    arr[i] == old(arr[j])) == 
//@   (
um_of int j; 0 <= j && j <= arr.length; 
//@    arr[i] == arr[j]) 
//@  ); 
//@    
void sort(int arr[]) 
0
votes
answers
20 views
+10

排序元組列表的第二項不工作在python

0

我想排序的第二元素的元組列表。列表中的每個元組都由一個元組和一個整數組成。排序元組列表的第二項不工作在python

l = [((1, 0, 1), 0), ((1, 0, 6), -1), ((1, 0, 8), -1), ((1, 0, 11), 0), ((1, 0, 14), 0), ((1, 0, 15), 0), ((1, 0, 17), -5), ((1, 0, 20), -3), 
    ((1, 0, 22), 0), ((1, 0, 24), 0)] 

sorted(l, key = lambda x:x[1]) 

print(l) 

sorted(l, key = lambda x:x[0]) 

print(l) # same output 

第一sorted()聲明應根據元組的第二個元素進行排序列表,即0,-1,-1,0,0,0,-5,-3,0,0,應該返回像這樣的或類似的東西,其中的元組的第二個元素是在非減順序列表:

[((1, 0, 17), -5), ((1, 0, 20), -3), ((1, 0, 6), -1), ((1, 0, 8), -1), ((1, 0, 1), 0), ((1, 0, 11), 0), ((1, 0, 14), 0), ((1, 0, 15), 0), 
     ((1, 0, 22), 0), ((1, 0, 24), 0)] 

但這兩個print報表打印相同並保持原始列表不變。爲什麼?以及如何通過第二元素對元組列表進行排序?我甚至試過key=itemgetter(1),但結果依然如此。

+1

sorted()返回一個新列表。使用list.sort()來代替。 –

沙发
0
1

sorted返回您交出的清單的排序版本。

該列表本身是未修改的。你總是打印未排序的列表。試試:

sorted_list_1 = sorted(l, key=lambda x: x[0]) 
sorted_list_2 = sorted(l, key=lambda x: x[2]) 
print (sorted_list1, sorted_list2) 
2
votes
answers
29 views
+10

C++ sorting and keeping track of indexes

Using C++, and hopefully the standard library, I want to sort a sequence of samples in ascending order, but I also want to remember the original indexes of the newly samples.

For example, I have a set, or vector, or matrix of samples A : [5, 2, 1, 4, 3]. I want to sort these to be B : [1,2,3,4,5], but I also want to remember the original indexes of the values, so I can get another set which would be: C : [2, 1, 4, 3, 0 ] - which corresponds to the index of the each element in 'B', in the original 'A'.

For example, in Matlab you can do:

 [a,b]=sort([5, 8, 7])
 a = 5 7 8
 b = 1 3 2

Can anyone see a good way to do this?

沙发
+20

Beautiful solution by @Lukasz Wiklendt! Although in my case I needed something more generic so I modified it a bit:

template <class RAIter, class Compare>
vector<size_t> argSort(RAIter first, RAIter last, Compare comp) {

  vector<size_t> idx(last-first);
  iota(idx.begin(), idx.end(), 0);

  auto idxComp = [&first,comp](size_t i1, size_t i2) {
      return comp(first[i1], first[i2]);
  };

  sort(idx.begin(), idx.end(), idxComp);

  return idx;
}

Example: Find indices sorting a vector of strings by length, except for the first element which is a dummy.

vector<string> test = {"dummy", "a", "abc", "ab"};

auto comp = [](const string &a, const string& b) {
    return a.length() > b.length();
};

const auto& beginIt = test.begin() + 1;
vector<size_t> ind = argSort(beginIt, test.end(), comp);

for(auto i : ind)
    cout << beginIt[i] << endl;

prints:

abc
ab
a

這就是任何解析器或詞法分析器生成器都會樂意為您發出的。不可思議的。是否要手動編碼是值得懷疑的。當然,它具有教學價值。 - Kuba Ober 2013年9月3日23:39

0
votes
answers
32 views
+10

排序有關表值(包括但現有關係的元素)

1

可以說我有兩個表:用戶和組織排序有關表值(包括但現有關係的元素)

users: 
id int, 
name varchar, 
type int, 
deleted bool 

organisations: 
id int, 
name varchar 
deleted bool 

,我想用的類型1名用戶組織排序。我知道,當我想通過關係值排序我必須使用加入:

$organisationsModel -> join('users', 'organisations.id', '=', 'users.organisationId', 'left') 
    -> select('organisations.*', 'users.name as userName') 
    -> where('users.type', 1) 
    -> where('users.deleted', 0) 
    -> orderBy('userName', 'ASC); 

,但只顯示有1型的用戶組織(與刪除設置爲0),我的問題是:我可以修改這個查詢也返回沒有適當的用戶連接它的值?

+0

什麼是您希望您的所有預期的輸出使用條件以便與更多的加盟條款加盟用戶的類型是否爲1,而是先將類型1的用戶和其他用戶分類? –

+0

我想總是按用戶(類型1,刪除0)名稱排序的所有組織,但是當組織沒有適當的用戶連接到它時,它應該將用戶名模擬爲空字符串。 – Gieerzetka

沙发
0
1

你需要一個左爲了得到所有組織,要訂購的結果您可以通過子句

$organisationsModel->leftJoin('users', function ($join) { 
            $join->on('organisations.id', '=', 'users.organisationId') 
             ->where('users.type', 1) 
             ->where('users.deleted', 0); 
        }) 
        ->select('organisations.*', 'users.name as userName') 
        ->orderByRaw('CASE WHEN users.type = 1 AND users.deleted = 0 THEN 1 ELSE 0 END DESC') 
        ->orderBy('userName', 'ASC); 

Another similar problem

+1

感謝人!我已經改變了你的代碼(fe。first join是不必要的),但它起作用了! – Gieerzetka

83
votes
answers
37 views
+10

Django: How to write query to sort using multiple columns, display via template

I'm quite new to Django, and not too experienced with MVC, DB queries.

I have a Customer table which includes customer_name, city_name, as well as a state_name (pulled from a foreign key table). In the HTML, I'm trying to display the results in a list first sorted alphabetically by state_name, then by city_name, then by customer_name name. Like so..

ARIZONA
   PHOENIX
     AAA, Inc.
     BBB, LLC.

   SCOTTSDALE
     AAA, LLC.
     DDD, Corp.

CALIFORNIA
   ANAHEIM
     ...

My model.py is as follows:

from django.db import models

class Customer(models.Model):
    def __unicode__(self):
        return self.customer_name

    customer_name = models.CharField(max_length=60)
    city_name = models.CharField(max_length=30)
    state = models.ForeignKey('State')

class State(models.Model):
    def __unicode__(self):
         return self.state_name

    state_name = models.CharField(max_length=20)
    state_code = models.CharField(max_length=2)

In my urls.py, I have:

url("^customers/$",
    direct_to_template,
    {'template': 'pages_fixed/customers.html',
    'extra_context': {'customers': Customer.objects.all().order_by('state')}},
    name='customers'),

And in my HTML, I have a working template as:

    <div class='customers'>
        {% for customer in customers %}
            <div class='block_customer'>
                <p>{{ customer.state.state_name }}</p>
                <p>{{ customer.city_name }}</p>
                <p>{{ customer.customer_name }}</p>
            </div>
        {% endfor %}
    </div>

It's all sort of working but obviously not sorting correctly and I'm not sure what's the best way to design it. I tried some inner loops with the templates, was hoping the templates would let me define some sorting rules but this doesn't seem to be supported/correct. I suspect that I need to query the data differently or pre-sort them in code ahead of time? I'm not sure if this would be done in the View (what is Django's form of Controller?).. If anyone could point me in the right direction, that would be MUCH appreciated!

up vote 70 down vote accepted favorite
沙发
+700
+50
em>更多關於 django docs )。請注意,此處不需要 .all()
  • (TEMPLATE LEVEL)重新組合模板標記需要在樣本中嵌套使用( more on django docs
  • 那麼,有沒有辦法在視圖級別使這個不區分大小寫的多列?我似乎無法找到這個的語法。我知道'Lower'會使它不區分大小寫,但我無法在多列上完成這項工作。 - Ben Jun 15 '17 at 23:55

    +120

    您可以在模型中指定排序,

     類Customer(models.Model):customer_name = models.CharField(max_length = 60)city_name = models.CharField(max_length = 30) state = models.ForeignKey('State')def __unicode __(self):return self.customer_name class Meta:ordering = ['customer_name','city_name','state']   

    Hope這有幫助。

    +10

    如果您想按“主”模型的某個字段進行排序,在這種情況下,您必須編寫如下內容:

      Customer.objects.order_by('state__state_name', 'city_name','customer_name')  

    看一下state__state_name,第一個狀態後的double _,可以訪問該模型的字段。

    0
    votes
    answers
    19 views
    +10

    我的數組如下所示

    -3

    在PHP中,我的數組如下所示。我的數組如下所示

    Array ([0] => Array ([ReasonCode] => TS) [1] => Array ([ReasonCode] => TS3) [2] => Array ([ReasonCode] => TS4) [3] => Array ([ReasonCode] => TEST-OO1) [4] => Array ([ReasonCode] => ROO1)). 
    

    但我想我的數組像下面Array(TS,TS3,TS4,TEST-001,ROO1)

    +2

    將有助於告訴我們編程語言 –

    +0

    編程語言,PHP –

    +0

    'array_column( 'ReasonCode',$陣列)' –

    沙发
    0
    0
    Let Your be $reasonCode = Array(0 => Array ('ReasonCode' => "TS"), 
            1 => Array ('ReasonCode' => "TS3"), 
            2 => Array ('ReasonCode' => "TS4"), 
            3 => Array ('ReasonCode' => "TEST-OO1"), 
            4 => Array ('ReasonCode' => "ROO1")); 
        $result = []; 
        foreach ($reasonCode as $reasonCodeKeys => $reasonCodeValue) { 
         foreach ($reasonCodeValue as $reasonkey => $reasonValue) { 
          $result[]=$reasonValue; 
         } 
        } 
    
    echo "<pre>"; 
    print_r($result); 
    echo "</pre>"; 
    exit; 
    
    +0

    謝謝你...它的工作很好.... –

    0
    votes
    answers
    36 views
    +10

    快速排序的Python排序麻煩

    3
    def quicksort(mas): 
        if mas: 
         mid = mas[0] 
         menshe = [i for i in mas[1:] if i < mid] 
         bolshe = [i for i in mas[1:] if i >= mid] 
         return quicksort(menshe) + [mid] + quicksort(bolshe) 
        else: 
         return mas 
    
    n = int(input()) 
    mas = input().split() 
    print(*quicksort(mas)) 
    

    它未能對一些測試,例如快速排序的Python排序麻煩

    input: 
    3 
    8 21 22 
    output: 
    21 22 8 
    

    如何提高代碼?

    +1

    你輸入'mas'包含字符串,而不是整數。因此你有一個詞典編排:'2'在'8'之前。 – MrT

    +1

    注意:您的'n'變量未被使用。也許'mas = input()。split()[:n]'?或者'mas = [int(item)for input in()。split()[:n]]'還包含解決方案嗎? – CristiFati

    沙发
    0
    1

    您的代碼可能工作得很好。我還沒有測試它。 (但現在我看起來正確)

    你的錯誤是你放棄了你的第一個輸入。所以,你應該使用你自己的代碼:

    mas = input().split() 
    print(*quicksort(mas)) 
    

    你只需要一個輸入。

    此外,要排序的字符串,不一定是數字,所以你可以希望做到這一點:

    mas = input().split() 
    print(*quicksort([int(item) for item in mas])) 
    
    板凳
    0
    3

    您的快速排序實現似乎是正確的,但您忘記將輸入轉換爲整數。你正在排序字符串。

    附註:不要忘記,樞軸選擇策略在快速排序算法中非常重要。你的「第一個元素作爲樞軸」方案類似於Lomuto partition scheme,對於有序或幾乎有序的序列,其容易降解爲O(n^2)

    0
    votes
    answers
    21 views
    +10

    如何通過adb從Android設備獲取最新截圖?

    0

    有沒有辦法通過ADB從我的設備上獲取最新的截圖?如何通過adb從Android設備獲取最新截圖?

    -rw-rw---- 1 root sdcard_rw 137047 2017-11-04 14:02 Screenshot_20171104-140236.png 
    -rw-rw---- 1 root sdcard_rw 67459 2017-11-04 14:05 Screenshot_20171104-140533.png 
    -rw-rw---- 1 root sdcard_rw 33939 2017-11-04 14:05 Screenshot_20171104-140557.png 
    -rw-rw---- 1 root sdcard_rw 329546 2017-11-06 11:12 Screenshot_20171106-111218.png 
    -rw-rw---- 1 root sdcard_rw 437013 2017-11-13 17:57 Screenshot_20171113-175727.png 
    -rw-rw---- 1 root sdcard_rw 1200088 2017-11-19 13:44 Screenshot_20171119-134405.png 
    -rw-rw---- 1 root sdcard_rw 146758 2017-12-12 20:19 Screenshot_20171212-201936.png 
    -rw-rw---- 1 root sdcard_rw 128158 2017-12-18 11:11 Screenshot_20171218-111151.png 
    

    如何拉取最新截圖?

    adb pull /mnt/sdcard/Screenshots c:screenshots 
    

    然後按日期在Windows資源管理器

    組織他們EDIT1我可以用得到的最新文件:

    -rw-rw---- 1 root sdcard_rw 128158 2017-12-18 11:11 Screenshot_20171218-111151.png 
    

    我目前使用拉的所有文件

    adb shell stat -c %y /mnt/sdcard/Screenshots 
    
    沙发
    0
    0

    亞行不支持標誌,所以你必須拉所有的文件(名稱),然後做一些邏輯來找到最近的文件,然後把它。

    這是可能的使用腳本,更多信息在this相關問題。

    +1

    我可以使用** adb shell stat -c%y/mnt/sdcard/Screenshots獲取最後一個文件** –

    0
    votes
    answers
    16 views
    +10

    更好的辦法排序字典並獲得鑰匙,我只有

    0

    客戶的字典和相關數據(例如MoneySpent),並想只返回客戶的排序列表。 我想通了迄今唯一的解決辦法是這樣的:更好的辦法排序字典並獲得鑰匙,我只有

    CustomerData<Customer, int> //the value here is the money spent 
    List<KeyValuePair<Customer, int>> sortedListByValue = CustomerData.OrderByDescending(s => s.Value).ToList(); 
    

    然後只是要通過量清單,並獲得鑰匙。但是,我確信有一個更簡單的方法,並會很樂意提供建議。

    +2

    什麼是'CustomerData'?你能在你的代碼中顯示嗎? – CodingYoshi

    +0

    一種替代的解決方案,以接受的答案(當然,相同的真,但與其他語法),與查詢語法:'VAR排序=(從CustomerData的OrderBy kv.Value千伏降序選擇kv.Value).ToList(); ' –

    沙发
    0
    1

    您可以選擇Key,這將給你的客戶。

    var sortedListByValue = CustomerData.OrderByDescending(s => s.Value) 
        .Select(x => x.Key).ToList(); 
    
    0
    votes
    answers
    25 views
    +10

    UL和李用jQuery 3.2.1運行錯誤

    -1

    I have this working link where it is displaied the outcome I wantUL和李用jQuery 3.2.1運行錯誤

    然而,當我插入我的代碼到Dreamweaver CC 2018這是行不通的。 我使用jquery jquery-3.2.1.js的3.2.1版本。

    在我的jsfiddle中,選擇按字母順序排序,而在我的頁面中則沒有。

    var mylist = $('#list'); 
     
    var listitems = mylist.children('li').get(); 
     
    listitems.sort(function(a, b) { 
     
        return $(a).text().toUpperCase().localeCompare($(b).text().toUpperCase()); 
     
    }) 
     
    mylist.empty().append(listitems);
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <ul id="list"> 
     
    <li>h</li> 
     
    <li>c</li> 
     
    <li>i</li> 
     
    <li>e</li> 
     
    <li>b</li> 
     
    <li>l</li> 
     
    <li>j</li> 
     
    <li>f</li> 
     
    <li>a</li> 
     
    <li>g</li> 
     
    <li>d</li> 
     
    <li>k</li> 
     
    <li>n</li> 
     
    <li>m</li> 
     
    </ul>

    我缺少什麼?

    +0

    什麼樣的錯誤? – Pedram

    +0

    所以它工作?或不? –

    +0

    也許你的問題是當你的腳本被閱讀,當你的HTML呈現。你有沒有嘗試在文檔中插入你的JavaScript代碼?我無法想象你提供的信息。 –

    沙发
    0
    1

    正如我提到我的評論你的問題可能是您的HTML渲染和JavaScript執行的時間。你可以嘗試插入你的JavaScript代碼,像這樣準備好文檔。

    $(document).ready(function() { 
        var mylist = $('#list'); 
        var listitems = mylist.children('li').get(); 
        listitems.sort(function(a, b) { 
         return $(a).text().toUpperCase().localeCompare($(b).text().toUpperCase()); 
        }) 
        mylist.empty().append(listitems); 
    }); 
    
    +0

    你現在真的很聰明,它肯定會工作最後一個$(文檔)。 。 。 finallllllly。非常感謝。 –

    +0

    我不明白部分$(document .... finallllly)?你那是什麼意思?任何方式,我很高興我幫助,我希望我的回答是你所需要的。 –

    +0

    我的意思是你確實把$(document).ready(function(){...。是的,我檢查了DreamWeaver cc的工作原理 –