Cet article présente principalement l'explication détaillée des structures de données et des algorithmes Java (tableaux ordonnés et recherche binaire), qui a une certaine valeur de référence. Les amis intéressés peuvent s'y référer
1. >
La recherche binaire est souvent utilisée dans des tableaux ordonnés, ce qui peut améliorer la vitesse de recherche. Aujourd'hui, nous utilisons la recherche séquentielle et la recherche binaire pour implémenter l'ajout, la suppression, la modification et la recherche de tableaux.2. Avantages et inconvénients des tableaux ordonnés
Avantages : La vitesse de recherche est beaucoup plus rapide que les tableaux non ordonnésInconvénients : Lors de l'insertion, vous devez trier les éléments suivants Déplacer les données
3. Avantages et inconvénients courants des tableaux ordonnés et des tableaux non ordonnés
Lors de la suppression de données, les données suivantes doivent être avancées pour remplir les éléments supprimés. Vulnérabilités4. Implémentation du code
public class OrderArray { private int nElemes; //记录数组长度 private long[] a; /** * 构造函数里面初始化数组 赋值默认长度 * * @param max */ public OrderArray(int max){ this.a = new long[max]; nElemes = 0; } //查找方法 (二分查找) public int find(long searchElement){ int startIndex = 0; int endIndex = nElemes-1; int curIn; while(true){ curIn = (startIndex + endIndex)/2; if(a[curIn]==searchElement){ return curIn; //找到 }else if(startIndex>endIndex){ //沒有找到 return nElemes; //返回大于最大索引整数 }else{ //还要继续找 if(a[curIn]<searchElement){ startIndex = curIn + 1; //改变最小索引 }else{ //往前找 endIndex = curIn -1; } } } } //插入元素(线性查找) public void insert(long value){ int j; for(j=0;j<nElemes;j++){ if(a[j]>value){ break; } } for(int k=nElemes;k>j;k--){ a[k] = a[k-1]; } a[j] = value; nElemes++; } //删除数据项 public boolean delete(long value){ int j = find(value); if(j==nElemes){ return false; //没找到 }else{ //所有元素往前移动一位 for(int k=j;k<nElemes;k++) a[k] = a[k+1]; nElemes--; return true; } } //展示的方法 public void display(){ for(int i=0;i<nElemes;i++){ System.out.print(a[i]+" "); } } public int size(){ return nElemes; } }
5.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!