算了,已经没有力气去创作些什么了,

8种排序方法我只会4种,剩下的以后再补。

发一个逻辑题吧:

一个村落,有50户人,在这些人中存在着n个红眼病。

在保证每人每天最少见一面的情况下,有如下规则:

1,村里没有镜子,也就是说看不到自己的眼睛

2,红眼病不是传播病,也就是说的病人数固定

3,所有人不得有任何形式的交流

4,在得知了自己是红眼病后得在当天晚上自杀

5,第一天,第二天没人自杀,第三天有人自杀了

请问村里一共有多少红眼病人?

JAVA初始的第三天

数据结构

1,数组

最基本的数据结构;是一张表,线性表(数据元素之间是一对一的,除了第一个和最后一个之外,其余元素都是首尾连接,所以数组有顺序)

2,链表

3,树

3,图

算法:

1,线性查找:

简单方便,但不适合数量大的数据。

2,二分查找:

必须要排序。

3,排序算法:

1.冒泡排序
/*
思路分析:
  1,我先拿第一个数和后面的数一一比较大小,如果比这个数小就换位,经过一轮比较之后,最大的数就会在最后
  2,经过数组长度减一次的比较,就会排序完成
  3,外层循环:表示排几轮
  4,里层循环:实现数和数之间的比较
   
*/
int []a = {1,58,46,33,10,5,-8,9,16,78,99,-45,48,33};
int i = 0;
int j = 1;
int m;

  for (i=0;i<(a.length-1);i++){
      for (j=1;j<a.length;j++){
          if (a[j-1]<a[j]) {
              m=a[j];
              a[j]=a[j-1];
              a[j-1]=m;
          }

          }
      }

  for(int b : a){
      System.out.print(b + ",");


}





简易算法:
直接调用方法Arrays.sort(数组)
2,快速排序

思路:选一个基点,把比基点小的都放在左边,把比基点大的都放在右边(不是基点的左右边!),这样就分成了两个区域,基点就是这两个区域的中间值,再将基点放到中间,

然后选择新建一个基点,以这个基点重复上面的步骤,

不断的新建基点,直到排序完成!

int[] a = {1, 58, 46, 33, 10, 5, -8, 9, 16, 78, 99, -45, 48, 33};
int m ;
int q;
for(int i=0;i<(a.length-1);i++){//取此时作为基点的数组值,为后面进行判断
  q=a[i];//保存此时a[i]的值
  int n=0;//用来记录下面循环成功次数,也就是有多少个比a[i]大的数
  for (int j =(i+1);j<a.length;j++){//开始循环

          if(a[i]>a[j]){//判断是否有数小于此时的q
              m=a[j];//如果有,让这个数和q前面的数依次交换,注,已交换的数不再交换!!
              a[j]=a[(i+1)+n];
              a[(i+1)+n]=m;//最关键的一步!
              n++;//记录比q大的数的个数
          }
  }
  int x = 0;
  x=a[i];
  a[i]=a[i+n];
  a[i+n]=x;//让a[i]和比他大的最后一个数进行交换,
  if (a[i]!=q){
      i--;
  }//这个if的作用就是判断一次,万一交换的最后一个数,比(第一个比q大的数)要大,那么就会出现问题!
}
3,插入排序
4,选择排序

/**
思路分析
*第一轮,i等于-。m=0,里层for循环,int j=1; j <a.lenth;
* if(arr[0])>arr[1]{}.由于if不满足,则继续下一次的比较。
* j=2 ,if(arr[0]>arr[2]){}.由于if不满足,则继续下一次比较。
* j= 3,if(arr[0]>arr[3]){}.由于if不满足,则继续下一次比较。
* j= 4,if(arr[0]>arr[4]){}.由于if不满足,则继续下一次比较。
* j=5 ,if(arr[0]>arr[5]){}.由于if满足条件,执行了交换操作 ,m=5。
* j=6 ,if(arr[5]>arr[6]){}.由于if不满足,则继续下一次比较。
* j=7 ,if(arr[5]>arr[7]){}.由于if不满足,则继续下一次比较。
* 到此为止,里层for循序执行完毕。m = 5 。执行的
* int n = a[5];
* a[5] = a[0];
* a[0] = n;
* i = 0 的这次外层循环执行完毕,数组最小的数就在第一位了。
* 第二轮继续
* 以此类推到第七轮,排序完毕
*/

int[] a = {1, 58, 46, 33, 10, 5, -8, 9, 16, 78, 99, -45, 48, 33};
int i;
int j;
int n;
for (i = 0; i < a.length ; i++) {
  int m =i;

  for (j =i+ 1; j < a.length; j++) {
      if (a[m] > a[j]) {
          m = j;
          }
      }
  n = a[m];
  a[m]=a[i];
  a[i]=n;
  }
for (int b : a) {
  System.out.print( b + ",");
}
5,希尔排序
6,堆排位
7,归并排序
8,桶排序
数组反转;
int[] a = {1, 58, 46, 33, 10, 5, -8, 9, 16, 78, 99, -45, 48, 33};
int[]b = new int[a.length];
for (int i=(a.length-1);i>=0;i--){
  for (int j =0 ; j<a.length;j++){
      if((i+j)==(a.length-1)) {
          b[j] = a[i];
      }
  }
}
数组的扩容:
    int []arr=new int[]{3,4,6   };
int [] temp=new int[6];//定义一个临时的数组
  for (int i = 0; i < arr.length; i++) {
    temp[i]=arr[i];
  }
  arr=temp;
  for (int i : arr) {
    System.out.println(i);
  }

 

随机推荐

  1. win10 python 环境搭建

    1.在官网上下载python安装程序:www.python.org 官网是英文的,程序自己慢慢找就好了.因为机子是64位的,所以必须下载64位的pyhon安装程序,另外我这里下的是python版本是2 ...

  2. 邻接矩阵dfs

    #include<bits/stdc++.h> using namespace std; int a[11][11]; bool visited[11]; void store_graph ...

  3. java常用注解校验参数

    validation中内置的constraints 注解 描述 @AssertFalse 所注解的元素必须是Boolean类型,且值为false @AssertTrue 所注解的元素必须是Boolea ...

  4. Java斗地主(集合综合练习)

    ​ 学完了集合后我们可以开始做一个简易版的 " 斗地主 " 了,但是呢咱们这个斗地主只能实现制造牌,洗牌.发牌.看牌这几个简单的功能,并不是我们玩的 " 真人版斗地主 & ...

  5. 齐博x1背景图如何设置标签

    背景图非常特殊,由于不能点击,所以他不能直接添加标签,需要添加一个辅助标签,比如类似下面的代码 {qb:hy name="xxa001" type="image" ...

  6. Apple Low Power DisplayPort(ALP_DP)学习随笔

    edp是PC内置显示接口的主流标准,主用于笔记本电脑或PAD上,普遍用于中大尺寸PANEL. 系统架构如下: apple 的ALP_DP 源于edp 1.4(edp1.4又是源于DP V1.2a版本) ...

  7. uni-app 配置MuMu手机模拟器 (2022-2-24)

    (1)到官网"https://mumu.163.com/"下载,我选中的中间的那个 (2)下载完成后,默认安装即可,直接等待安装完成 (3)在uni-app里设置端口,在uni-a ...

  8. 一、Go语言开篇介绍

    Go语言开篇介绍 Go语言 是Google公司 在2007开发一种静态强类型.编译型语言,并在 2009 年正式对外发布. Go语言以其近C的执行性能和近解析型语言的开发效率,以及近乎于完美的编译速度 ...

  9. 使用jmx exporter采集kafka指标

    预置条件 安装kafka.prometheus 使用JMX exporter暴露指标 下载jmx exporter以及配置文件.Jmx exporter中包含了kafka各个组件的指标,如server ...

  10. LAPM概述及配置

    一.LAMP概述 1.1LAMP的概念 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态web站点服务及其应用开发环境 LAMP是一个缩写词,具体包括L ...