名稱按 Pascal 程式設計字典排序

發布 科技 2024-05-17
11個回答
  1. 匿名使用者2024-02-10

    vari,j:integer;

    n:integer;

    a:array[1..maxint] of string;

    k:string;

    beginread(n);

    for i:=1 to n do readln(a[i]);

    for i:=1 to n-1 do

    for j:=i+1 to n do

    if ifor i:=1 to n do

    writeln(a[i]);

    end.瞭望塔的主人,絕對正確(不管有多少)。

  2. 匿名使用者2024-02-09

    pascal 中的字串可以在大小上進行比較。

  3. 匿名使用者2024-02-08

    如果它是全大寫或全小寫的字串,則非常簡單。

    只需按排序演算法排序(只需將原始資料型別從整數更改為字串即可)。

    使用字元陣列來執行此操作"按字典順序輸出字串"它要複雜得多,因此建議改用字串。

  4. 匿名使用者2024-02-07

    var a:array[0..10000] of string;

    n,i:longint;

    procedure sort(i1,j1:longint);

    var i,j:longint;

    n,s:string;

    begini:=i1;

    j:=j1;

    n:=a[(i+j) div 2];查詢參考以比較重複次數

    while a[i]n do dec(j);

    if i<=j then

    begins:=a[i];a[i]:=a[j];a[j]:=s;交易所 Inc(I); dec(j);

    end;until i>j;

    if iif i1end;

    開始檔案。

    readln(n);讀取的字串數,記得換行(換行也是字元)為 i:=1 到 n do readln(a[i]); 讀取 N 個字串。

    sort(1,n);快速排序。

    for i:=1 to n do writeln(a[i]);輸出 N 個字串。

    檔案輸出。 end.

  5. 匿名使用者2024-02-06

    實際上,該方法與選擇順序相同。

  6. 匿名使用者2024-02-05

    快速划船,字串與普通資料相同。

  7. 匿名使用者2024-02-04

    main()

    if(p!=i)

    puts(cs[i]);printf("");

    在此程式的第乙個 for 語句中,使用 gets 函式輸入五個名稱字串。 如上所述,C 語言允許將乙個二維陣列視為多個一維陣列,這個程式解釋了 cs[5][20] 是乙個二維字元陣列,它可以分為五個一維陣列 cs[0]、cs[1]、cs[2]、cs[3] 和 cs[4]。因此,在 gets 函式中使用 cs[i] 是合法的。

    在第二個 for 語句中,另乙個 for 語句巢狀以形成雙迴圈。 此雙迴圈按字母順序完成工作。 在外部迴圈中,將名稱字串從字元陣列 cs[i] 複製到陣列 st,並將下標 i 分配給 p。

    進入內迴圈後,將 CS[I] 後面的字串與 st 進行比較,如果有小於 st 的東西,則將字串複製到 ST 中,並將其下標分配給 P。 內部迴圈完成後,如果 p 不等於 i,則有乙個比 cs[i] 更小的字串,因此交換了 cs[i] 和 st 的內容。 至此,陣列 cs 的第 i 個元素的排序值已經確定。

    然後輸出該字串。 外迴圈完成後,所有排序和輸出完成。

  8. 匿名使用者2024-02-03

    快速排序是對氣泡排序的改進。 其基本思想是:通過躺式排序將待排序的資料分成兩個獨立的部分,一部分的所有資料都小於另一部分的所有資料,然後根據二級方法對兩部分資料進行快速排序,整個排序過程可以遞迴進行, 從而實現整個資料成為有序序列。

    假設要排序的陣列是 a[1] ......a[n],首先選擇任意乙個資料(通常是第乙個資料)作為關鍵資料,然後把所有大於它的數字放在它的前面,把所有大於它的數字放在它後面,這個過程稱為躺著的快速排序。 說謊快速排序的演算法是:

    1)在排序開始時設定兩個變數i和j,i:=1和j:=n;

    2)取第乙個陣列元素作為關鍵資料,給x賦值,即x:=a[1];

    5)重複步驟,直到i>j;

    詳細過程示例如下:

    原始順序:[26 5 37 1 61 11 59 15 48 19]。

    我:[19 5 15 1 11] 26 [59 61 48 37]。

    II: [11 5 15 1] 19 26 [59 61 48 37]。

    三:[1 5] 11 [15] 19 26 [59 61 48 37]。

    IV:1 5 11 [15] 19 26 [59 61 48 37]。

    V:1 5 11 15 19 26 [59 61 48 37]。

    xx: 1 5 11 15 19 26 [37 48] 59 [61]。

    七:1 5 11 15 19 26 37 48 59 [61]。

    八: 1 5 11 15 19 26 37 48 59 61

    快速排序方法是所有排序方法中最快、最有效的。 操作步驟如下:

    var a:array[0..10] of integer;

    n:integer;

    procedure qsort(l,r:longint);

    var i,j,m:longint;

    beginm:=a[l];

    i:=l;j:=r;

    repeat

    while a[i]m do dec(j);

    if i<=j then begin

    a[0]:=a[i];

    a[i]:=a[j];

    a[j]:=a[0];

    inc(i);

    dec(j);

    end;until i>j;

    if lif iend;

    beginfor n:=1 to 10 do read(a[n]);

    qsort(1,10);

    for n:=1 to 10 do write(a[n]:4);

    end.

  9. 匿名使用者2024-02-02

    你認為這是帕斯卡自己的字串的比較嗎? 樓上完全不合時宜! 對於快速排列,好像沒有,至少結果應該在o(n 3)以下(可以使用氣泡,應該是最簡單的,因為字串太長,無法將26的基數轉換為十進位整數,只能不斷與相鄰的兩個字串程式碼襯衫進行比較, 然後交換它,也可以使用 n 關鍵字進行排序,並將每個位的字母變成乙個整數陣列:

    array[1..length(st),1..n] of shortint;還可以然後依次對每個位進行排序、、但建議使用冒泡,因為快速排列的程式很長,對禪宗的優秀模型也很麻煩、、

  10. 匿名使用者2024-02-01

    通常使用第三項。

    1.逐字節迴圈比較(使用快速行)。

    2 轉換為 26 十進位數比較。

    3 快速行直接比較(A 字串> B 字串),然後是 A 字典順序 B(示例:'aa'<'ab','aa'<'db','問題A中的字典順序一般是用演算法計算的,沒有特殊的排序問題;

  11. 匿名使用者2024-01-31

    以同樣的方式,轉換為 Asker 程式碼並快速將行轉換為字元。

相關回答
12個回答2024-05-17

排序命令;

主要關鍵詞“選擇”等級(或B列),“降序”; >>>More

11個回答2024-05-17

這是手機的機器程式碼。

10個回答2024-05-17

百家姓是寫在宋代的,因為宋朝的皇帝姓趙,所以當初寫的就是趙。 其他姓氏不是按權力或數字排名的,而是發音流暢。 舊百姓的末尾是百姓的末尾。