我要一些邏輯將所述陣列中插入數字,並在同一時間它會檢查當前的號碼已不存在在數組中。請幫助我的邏輯。如何避免C數組中的重複元素項?
-9
A
回答
0
代碼以在數組中刪除重複的元素
#include<stdio.h>
#include<conio.h>
void main()
{
int a[20], i, j, k, n;
clrscr();
printf("\nEnter array size : ");
scanf("%d",&n);
printf("\nEnter %d array element : ", n);
for(i = 0; i < n; i++)
{
scanf("%d",&a[i]);
}
printf("\nOriginal array is : ");
for(i=0;i< n;i++)
{
printf(" %d",a[i]);
}
printf("\nNew array is : ");
for(i=0; i < n; i++)
{
for(j=i+1; j < n;)
{
if(a[j] == a[i])
{
for(k=j; k < n;k++)
{
a[k] = a[k+1];
}
n--;
}
else {
j++;
}
}
}
for(i=0; i < n; i++)
{
printf("%d ", a[i]);
}
getch();
}
輸出
輸入數組大小:5
輸入5的數組元素:11 13 11 12 13
原始陣列是:11 13 11 12 13
新陣列是:11 13 12
0
可能的解決方案:
O(n^2)
算法,在這裏做線性搜索O(n)
檢查該號碼是否存在於陣列中或不是所有的n
元素。
對於每個元素(n個元素):
O(n)
:搜索
O(1)
:插入
O(n^2)
算法,當你在排序後的數組插入。
對於每個元素(n個元素):
O(log n)
:二進制搜索
O(n)
:移動和插入
雖然有先進的數據結構(更多在C++ STL),但你將需要的不僅僅是一個數組。因爲在數組中插入代價很大(在特定位置插入)。
其他數據結構這可能幫助:BST(AVL-BST,伸展樹......等平衡樹結構)。
在C++:套正是你想要的。集合在STL中作爲樹實現。
相關問題
- 1. PHP - MYSQL - 避免計數重複元素
- 2. 如何避免NSXMLParser中重複的核心數據元素?
- 3. 如何避免ScriptDb中的重複項?
- 4. 避免插入子數組重複項
- 5. 避免的foreach重複的元素
- 6. 避免Linq在C#中重複組
- 7. 如何避免重複渲染jsrender中的DOM元素
- 8. 比較數組元素時避免重複
- 9. 如何避免數組數組中的重複值?
- 10. 避免二維數組中的重複?
- 11. X元素數組中的重複項
- 12. 爲了避免在C++中重複數組中的數字
- 13. 如何避免重疊元素
- 14. 如何避免重複樣式項目?
- 15. 避免增加重複元素的列表C#
- 16. 如何在克隆元素時避免重複的ID?
- 17. 如何避免重複數組push()函數中的字段?
- 18. C#避免重複邏輯
- 19. C#試圖避免重複
- 20. C#避免重複代碼
- 21. 比較列表元素,如何避免重複比較?
- 22. 如何計算數組中重複元素的重複次數?
- 23. 如何避免重複?
- 24. 如何避免重複值?
- 25. 如何避免重複值
- 26. 如何避免RowDefinition重複?
- 27. 如何避免重複
- 28. 避免QTabWidget中重複的選項卡
- 29. 避免Haskell中的重複項目
- 30. 避免列表中的重複項
顯示你的努力。 – rsp
你到目前爲止嘗試過什麼?你的嘗試如何工作,或沒有工作?請花些時間閱讀[幫助頁面](http://stackoverflow.com/help),尤其是名爲[「我可以問些什麼話題?」]的章節(http://stackoverflow.com/help/)討論話題)和[「我應該避免問什麼類型的問題?」](http://stackoverflow.com/help/dont-ask)。另外[閱讀關於如何提出好問題](http://stackoverflow.com/help/how-to-ask)。最後,請學習如何創建[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 –
http://www.studytonight.com/c/remove-duplicate-element-program.php – rsp