急,陣列1排序後 陣列2,求演算法!3Q

2021-09-08 21:03:15 字數 2311 閱讀 5721

急,陣列1排序後->陣列2,求演算法!3q delphi / windows sdk/api

陣列1排序,同時將陣列1排序前的序號值按排序後的順序存入陣列2,求一簡單演算法(**少優先,速度其次)  

例:  

a[0]=4  

a[1]=5  

a[2]=3   ...  

a[1]最大,a[0]第二,a[2]第三  

則取a的原序號->b  

b[0]=1  

b[1]=0  

b[2]=2...  

3q~  

沒看動啥意思  

如果只是排序,delphi自帶的關於執行緒的demo中有排序演算法。

.......就是  

a[0]=4  

a[1]=5  

a[2]=3   ...  

可見:  

a[1]最大,其序號a[i]的i=1  

a[0]第二,其序號a[i]的i=0  

a[2]第三,   其序號a[i]的i=2  

所以:  

要求獲得:  

b[0]=1  

b[1]=0  

b[2]=2...

unit   unit1;  

inte***ce  

uses  

windows,   messages,   sysutils,   variants,   classes,   graphics,   controls,   forms,  

dialogs,   stdctrls;  

type  

ttest=record  

data   :   integer;  

index   :   integer;  

end;  

tform1   =   class(tform)  

memo1:   tmemo;  

button1:   tbutton;  

memo2:   tmemo;  

procedure   button1click(sender:   tobject);  

private  

public  

end;  

var  

form1:   tform1;  

implementation  

procedure   tform1.button1click(sender:   tobject);  

var  

farray   :   array[0..5]   of   ttest;  

i,j   :   integer;  

t   :   ttest   ;  

begin  

randomize;  

//初始化乙個陣列  

for   i:=   0   to   5   do  

begin  

farray[i].data   :=   random(100);  

farray[i].index   :=   i;  

memo1.lines.add(format('資料:%d;序號:%d',[farray[i].data,farray[i].index]));  

end;  

//排序  

for   i   :=   high(farray)   downto   low(farray)   do  

for   j   :=   low(farray)   to   high(farray)   -   1   do  

if   farray[j].data   >   farray[j   +   1].data   then  

begin  

t   :=   farray[j];  

farray[j]   :=   farray[j   +   1];  

farray[j   +   1]   :=   t;  

end;  

//顯示結果  

for   i:=   0   to   5   do  

memo2.lines.add(format('資料:%d;序號:%d',[farray[i].data,farray[i].index]))  

end;  

end.  

靠,反了,我是按照從小到大排序的,你調整一下就可以了。

就是要這個效果!!我鬱悶了1天啊!!!!萬萬分感謝!!!!!!!;  

3q3q3q3q;

陣列0,1和陣列0,1,2排序

陣列有0和1,將0排在1之前 思路 採用兩個指標,乙個從前乙個從後。p0找到不為0的值,p1找不到不為1的值,二者進行交換。void sort2 int arr,int len 陣列有0,1和2,將0排在1之前,1排在2之前 時間複雜度o n 思路 通過三個下標遍歷一遍實現的方法。p0從左側開始,指...

(週日賽1)排序2

題意 非常明顯 就是排序了 但是當時腦筋突然沒轉過彎來,沒有相同該怎麼取盡所有的數 後來看到同學的 才恍然大悟 題目也有幾個坑點 千位數字相同的在同一行 每組輸出資料間空一行,最後一組資料後面沒有空行 input 每組資料佔一行,代表四張卡片上的數字 0 數字 9 如果四張卡片都是0,則輸入結束。o...

js陣列詳解(四) 排序API

1.排序 自定義排序 冒泡 排序api arr.sort 大問題 預設將所有元素轉為字串再按字串排列 只能對字串型別的元素正確排序 解決 自定義比較規則 比較器函式 專門比較任意兩值大小的函式 要求 兩個引數 a,b 返回值 如果a b,就返回正數 如果a降序 顛倒比較器函式的正負號,可改公升序為降...