私は配列に数字を挿入するロジックを必要とし、同時に現在の数字が既に配列に存在しないことをチェックします。論理で私を助けてください。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();
}
出力
アレイのサイズを入力してください11 13 11 12 13
元の配列である:5
5配列要素を入力:11 13 11 12 13
新しい配列:11 13 12
0
解決策:あなたは数がすべてn
要素の配列かどうかに存在しているかどうかを確認するために、線形検索O(n)
を行う
O(n^2)
アルゴリズム。 各要素(n個の要素)について
:
O(n)
:検索
O(1)
:挿入
O(n^2)
アルゴリズム、
-
。各要素について
O(log n)
:バイナリ検索
O(n)
:Shiftキーと挿入
(以上のC++のSTLで)高度なデータ構造がありますがしかし、あなたは意志単なる配列以上のものが必要です。挿入は配列にコストがかかるため(特定の位置に挿入)
その他のデータ構造:BST(AVL-BST、Splay Trees、...その他のバランスツリー構造)。
C++では:セットはあなたが望むものです。 setsはSTLのツリーとして実装されます。
関連する問題
- 1. javascriptの文字列からランダムな配列の重複要素を避ける
- 2. 配列リストの重複する要素を見つける
- 3. 固定要素との重複を避ける
- 4. C++のハッシュテーブルを使った配列の重複要素
- 5. X要素配列の重複
- 6. すぐに配列内に重複を避ける3
- 7. 配列を逆順に印刷して重複を避けるC++
- 8. ノード配列のオブジェクト配列indexOfの重複要素を取得
- 9. Cで重複イベントサブスクリプションを避ける
- 10. 配列の集合に重複のない要素のインデックスを見つける
- 11. 再帰の内部にある配列の重複データを避ける
- 12. 配列要素の8進数の重複をチェックするPerl
- 13. 配列をコントロールにマッピングするときに重複するコードを避ける
- 14. グリッドビューの重複行を避けるためにC#コード
- 15. 避けクローンの重複
- 16. 配列内の要素を重複して比較する
- 17. selectで重複する文字列を避けるには?
- 18. 配列内に重複する要素を持つバイナリ検索
- 19. 複数の配列のc#配列印刷要素
- 20. イメージをランダムに配置し、重複を避ける(ワードプレスプラグインなし)
- 21. Hibernate、重複を避ける方法は?
- 22. C#:XMLの重複要素のチェック
- 23. xmlファイルに重複するエントリを避けるC#
- 24. Gephiでラベルの重複を避ける
- 25. エンティティフレームワーク:重複の挿入を避ける
- 26. PHPでIDの重複を避ける
- 27. 重複ファイルのアップロードを避ける
- 28. iPhoneのアドレス帳:重複を避ける
- 29. キー/データの重複を避ける
- 30. アルゴリズム - 配列から重複する要素を削除する
あなたの努力を示してください。 – rsp
これまでに何を試しましたか?あなたの試みはどのように働いたのですか? [ヘルプページ](http://stackoverflow.com/help)、特に[ここではどのトピックを聞くことができますか?](http://stackoverflow.com/help/)のセクションを読んでください。 on-topic)と[[どのような種類の質問を避けるべきですか?]](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