算法与数据结构

news/2024/11/27 23:42:49/

位运算

打印一个整数型的32位

public void print(int num){

      for(int i = 31; i > 0;i--){

               System.out.print((num & 1 << i) > 0 ? "1" : "0");   

      }

}

print(1);

//0000000000000000000000000000001

&:与运算,都为1才为1

|:  或运算,有一个为1,就为1

^:  异或运算,相同为0,不相同为1

~:  取反,1变成0,0变成1

二进制第一位:表示符号位,1 :负号,0:正号

负数为正数的取反+1 

例如:1的二进制表示为:0000000000000000000000000000001

          -1二进制位为:11111111111111111111111111111110 + 1                                               =  1000000000000000000000000000001

数组排序:给定数组int[] arr = new int[]{1,4,2,1,7,9,4,3}

冒泡排序算法

(1)每相邻的两个元素进行比较,如当前位的值小于上一位的值则进行赋值交换

(2)故而第一次循环可以找出最大的值并交换至数据末端,设数组长度为n,则第二次循环n-1即可找出第二大的值并交换至数据倒数第二的位置,以此类推历次循环n-2,n-3 .....n-n次。即可完成数组由大到小的排序

插序排序算法

(1)以第一个元素为起始判断,用第二个元素与第一个元素比较大小,如第二个元素小则进行交换;第三个元素与第二个元素再进行比较,如三个元素小则交换,第二个元素再与第一个元素比较如第二个元素小则交换。

(2)故而第一层循环需遍历数组n次,第二层循环需遍历元素下标-1次数同时比较当前元素与上一个元素的大小并做交换。

选择排序算法

(1)默认第一个元素为最小值,遍历数组从第二个元素开始依次与第一个元素比较,如比第一个元素小则交换。

(2)故而第一次遍历数组n次可找到最小的元素并交换至数据首端,第二次遍历数组n-1次可找到第二小的元素并交换到数组第二位,以此类推遍历n-2,n-3...n-n次可完成数组由小到大的排序


http://www.ppmy.cn/news/10936.html

相关文章

BGP基础实验(1.10)

目标: 1、首先为所有路由器配置接口ip和环回 r1&#xff1a; [r1]int lo0 [r1-LoopBack0]ip add 1.1.1.1 24 [r1-LoopBack0]int gi 0/0/0 [r1-GigabitEthernet0/0/0]ip add 12.1.1.1 24 r2&#xff1a; [r2]int lo0 [r2-LoopBack0]ip add 2.2.2.2 24 [r2-LoopBack0]int gi …

Java中常用API总结(5)—— Object类中的深克隆和浅克隆

对象克隆一、前言二、浅克隆1.概述2.实例1️⃣思路2️⃣继承cloneable接口底层原理3️⃣重写clone方法底层原理3.代码实现三、深克隆1.概述2.实例3.代码实现四、结语一、前言 本文将详细讲述Object类中的对象克隆方法&#xff0c;其中包含深克隆和浅克隆&#xff0c;两者有一定…

产线工控安全之现状分析及方案应对

产线安全现状 工业控制系统是支撑国民经济的重要设施&#xff0c;是工业领域的神经中枢。现在工业控制系统已经广泛应用于电力、通信、化工、交通、航天等工业领域&#xff0c;支撑起国计民生的关键基础设施。 随着传统的工业转型&#xff0c;数字化、网络化和智能化的工业控…

Apache与Nginx虚拟机的三种访问+非简单请求+跨域知识点整理

Apache 在D:\project\web\index.html中写入 <h1>welcome useing apache!</h1>基于ip访问 打开phpstudy_pro\Extensions\Apache2.4.39\conf\extra\httpd-vhosts.conf写入 <VirtualHost 192.168.1.4:80>ServerAdmin 88888888163.com #管理员邮箱DocumentRoo…

【Linux】进程信号万字详解(上)

&#x1f387;Linux&#xff1a; 博客主页&#xff1a;一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a; 看似不起波澜的日复一日&#xff0c;一定会在某一天让你看见坚持…

若依分离版解决单个账号多设备登录问题

若依分离版解决单个账号多设备登录问题 1.application.yml添加相关配置&#xff0c;用于灵活控制单个账号多设备登录的情况 #token配置 token: # 这个是若依框架本身存在的配置 # 是否允许并多设备登录 true:允许 false:不允许 这个是新增的配置singleLogin: false2.Cach…

测试开发 | 跨平台设备管理方案 Selenium Grid

Selenium Grid 是 Selenium 的三大组件之一&#xff0c;它可以在多台机器上并行运行测试&#xff0c;集中管理不同的浏览器版本和浏览器配置。通过将客户端命令发送到远程浏览器的实例, Selenium Grid 允许在远程计算机 (虚拟或真实) 上执行 WebDriver 脚本. 它旨在提供一种在多…

【Python】python深拷贝和浅拷贝(二)

【Python】python深拷贝和浅拷贝&#xff08;二&#xff09; 前言 上一期我们介绍了Python中深拷贝和浅拷贝的定义以及它们在执行过程中内存结构&#xff0c;同时也给出了深拷贝和浅拷贝的方法。&#xff08;没有看上一期的朋友看这里&#xff0c;python深拷贝和浅拷贝&#…