演算法題目 把陣列排成最小的數

2021-08-04 09:55:42 字數 1079 閱讀 7609

輸入乙個正整數陣列,陣列裡面所有數字拼接起來排成乙個數,列印能拼接出的所有數字最小的乙個。

例如輸入陣列{3,32,321},則列印出最小數字321323

const int g_maxnumberlength = 10;

char* g_strcombine1 = new char[g_maxnumberlength*2 +1];

char* g_strcombine2 = new char[g_maxnumberlength*2 +1];

int compare(const void* strnumber1,const void* strnumber2)

void printminnumber(int* numbers,int length)

qsort(strnumbers,length,sizeof(char*),compare);

for(int i=0;iprintf("%s",strnumbers[i]);

printf("\n");

}void test(char* testname, int* numbers, int length, char* expectedresult)

void test1()

;test("test1", numbers, sizeof(numbers)/sizeof(int), "12345");

}void test2()

;test("test2", numbers, sizeof(numbers)/sizeof(int), "321323");

}void test3()

;test("test3", numbers, sizeof(numbers)/sizeof(int), "321233233");

}void test4()

;test("test4", numbers, sizeof(numbers)/sizeof(int), "111111");

}void test5()

;test("test5", numbers, sizeof(numbers)/sizeof(int), "321");

}void test6()

int main()

題目1504 把陣列排成最小的數

題目描述 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。輸入 輸入可能包含多個測試樣例。對於每個測試案例,輸入的第一行為乙個整數m 1 m 100 代表輸入的正整數的個數。輸入的第二行包括m...

程式設計題目 把陣列排成最小的數

68.把陣列排成最小的數 陣列 演算法 題目 輸入乙個正整數陣列,將它們連線起來排成乙個數,輸出能排出的所有數字中最小的乙個。例如輸入陣列,則輸出這兩個能排成的最小數字 32132。請給出解決問題的演算法,並證明該演算法。思路 首先,肯定要考慮溢位問題。開始想用字串,後來改為了用list。思路是先把...

程式設計題目 把陣列排成最小的數

68.把陣列排成最小的數 陣列 演算法 題目 輸入乙個正整數陣列,將它們連線起來排成乙個數,輸出能排出的所有數字中最小的乙個。例如輸入陣列,則輸出這兩個能排成的最小數字 32132。請給出解決問題的演算法,並證明該演算法。思路 首先,肯定要考慮溢位問題。開始想用字串,後來改為了用list。思路是先把...