数据结构:

          数组:最基本的数据结构(线性表)
链表:单向链表,双向链表
树:二叉树
图:深度优先遍历、广度优先遍历
查找:
线性查找
折半查找
排序:
冒泡排序*
快速排序
插入排序*
选择排序*
希尔排序
堆排序
归并排序
桶排序

1、查找

线性查找:

    int [] arr=new int []{1,58,46,33,10,5,-58};
Scanner sc=new Scanner(System.in);
System.out.print("请输入一个数:");
int number=sc.nextInt();
int j=-1;
for(int I=0; i<arr.length; i++){//循环遍历数组,利用j存储下标来输出提示等。
if(arr[i]==number){
j=i;
}
}
if(j==-1){
System.out.print("你要找的数是:"+number+" 在目标数组不存在");
} else if (j!=-1) {
System.out.print("你要找的数是:"+number+" 在目标数组中的下标是:"+j);
} 折半查找: int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7};
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个数字:");
int number = sc.nextInt();
int left = 0, right = arr.length - 1;//两个下标
if (number < arr[left] || number > arr[right]) {
System.out.println("数字不存在");
} else {
int res = -1;
while (left <= right) {
int middle=(left+right)/2;
if(arr[middle]==number){
res=middle;break;
} else if (number<arr[middle]) {
right=middle-1;
}else {
left=middle+1;
}
}
System.out.print("下标:"+res);
}

2、排序

冒泡排序:
int [] arr=new int []{1,58,46,33,10,5,-8};
int i=0,j=0;
while(i<(arr.length-1)){
while (j< (arr.length-(i+1))){
if(arr[j]>arr[j+1]){
int max;
max=arr[j+1];
arr[j+1]=arr[j];
arr[j]=max;
}
j++;
}
j=0;
i++;
}
int n=0;
System.out.println("long "+arr.length);
while(n< arr.length){
System.out.print(arr[n]+" ");
n++;
} 选择排序:
int [] arr=new int[]{1,25,48,12,10,-8,127,56};
for(int i=0;i<arr.length-1;i++){
int min=i;
int temp=arr[i];
for(int j=(i+1);j<arr.length;j++){
if(arr[i]>arr[j]){
arr[i]=arr[j];
min=j;
}
}
arr[min]=temp;
System.out.print("第"+(i+1)+"次:");
for (int n=0;n<arr.length;n++){
System.out.print(arr[n]+" ");
}
System.out.println();
} 插入排序:
int [] arr=new int[]{10,5,2,18,3,50,100,-1};
for(int i=0;i<arr.length-1;i++){
int min=arr[i+1];
for(int k=i;k>0;k--){
if(min<arr[k]){
for(int j=i;j>k-1;j++){
arr[j]=arr[j-1];
}
break;
}
}
}

最新文章

  1. Android studio每次启动卡在fetching Android sdk compoment information的解决方案
  2. C# Use Pop3Client to read gmail
  3. 理解并使用.NET 4.5中的HttpClient
  4. OGNL和Struts2标签
  5. arcgis server manager - An error has occured on the server. For details please check the Event (Application) log on the web.
  6. 强大的Mockito测试框架(转)
  7. JAVA类与对象(课堂总结)
  8. JSON和java对象的互转
  9. 深入理解JVM(六)&mdash;&mdash;类加载器原理
  10. 使用 MarkDown &amp; DocFX 升级 Rafy 帮助文档
  11. c/c++ 用前序和中序,或者中序和后序,创建二叉树
  12. CentOS7安装Jenkins自动化部署maven项目
  13. C# 之 @ Assembly
  14. BeanFactory和FactoryBean的区别
  15. leetcode739
  16. 合并数组,改变原数组apply与不改变原数组
  17. js计算器---转
  18. Java中的访问权限细谈
  19. android 量产软件改动信息(持续更新)
  20. 安装JIRA

热门文章

  1. 【CSAPP】Cache Lab 实验笔记
  2. SQL注入之information_schema
  3. NS2中couldn‘t read file “../tcl/mobility/scene/cbr-3-test“: no such file or directory解决方法
  4. Yapi Docker 部署
  5. 并发编程之volatile与JMM多线程内存模型
  6. python 动态规划(背包问题和最长公共子串)
  7. python网络自动化ncclient模块,netconf协议检索与下发交换机配置
  8. 一文看懂 ZooKeeper ,面试再也不用背八股(文末送PDF)
  9. 109_Power Pivot客户ABC(帕累托)分析度量值写法(非计算列)
  10. 印尼医疗龙头企业Halodoc的数据平台转型之Lakehouse架构