余晖落尽暮晚霞,黄昏迟暮远山寻
本站
当前位置:网站首页 > 编程知识 > 正文

CentOS 7.1静默安装11.2.0.3 64位单机数据库软件

xiyangw 2023-10-09 16:27 45 浏览 0 评论

第1章 CentOS 7.1静默安装11.2.0.3 64位单机数据库软件

1.1 安装前的准备工作

1.1.1 软件准备

1.1.2 检查硬件

注意这里的内存应该满足要求,不然可能引起数据库在安装过程中长时间的挂起等待。。。。

在正式安装开始前,请先检查你的软硬件条件是否满足安装需要。

硬件上可以使用命令查看内存情况和 CPU 特性:

more /proc/meminfo

more /proc/cpuinfo

其中内存的要求是不低于 1G

下面的不是必须的,可选使用

cat /etc/redhat-release

#df –k /dev/shm 检查共享内存

#df –k /tmp 检查临时磁盘空间

#more /proc/version 检查操作系统版本

#uname –r 检查内核版本

内存:

# grep MemTotal /proc/meminfo

交换空间

# grep SwapTotal /proc/meminfo

磁盘空间

# df -ah

# free

#free -m

1.1.3 修改hosts文件、修改主机名

永久生效:

[root@localhost ~]# hostnamectl set-hostname COSLHR

或修改文件/etc/hostname:

[root@localhost ~]# cat /etc/hostname

COSLHR

临时生效:

[root@localhost ~]# hostname COSLHR

查看/etc/hosts文件中必须包含a fully qualified name for the server,必须包含127.0.0.1和真实的IP地址这2行:

[root@localhost ~]# cat /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1 localhost.localdomain localhost

::1 localhost6.localdomain6 localhost6

192.168.59.155 COSLHR

注意将主机名对应到真实IP地址,否则Oracle有可能将监听程序仅仅建立在127.0.0.1上。

注意:修改主机名后,需要重启系统后生效。

1.1.3.1 配置固定IP

DEVICE=ens33

IPADDR=192.168.59.51

NETMASK=255.255.255.0

NETWORK=192.168.59.0

BROADCAST=192.168.59.255

GATEWAY=192.168.59.2

ONBOOT=yes

USERCTL=no

BOOTPROTO=static

#HWADDR=00:0c:29:97:f1:5b

TYPE=Ethernet

IPV6INIT=no

DNS1=202.96.209.5

DNS2=8.8.8.8

NAME="ens33"

1.1.4 安装软件包检查

http://blog.itpub.net/26736162/viewspace-2133603/

可以统一检查:

rpm -q \

binutils \

compat-libstdc++-33 \

elfutils-libelf \

elfutils-libelf-devel \

expat \

gcc \

gcc-c++ \

glibc \

glibc-common \

glibc-devel \

glibc-headers \

libaio \

libaio-devel \

libgcc \

libstdc++ \

libstdc++-devel \

make \

pdksh \

sysstat \

unixODBC \

unixODBC-devel | grep "not installed"

如果部分包不存在,可以批量更新安装,但如果依赖关系缺失,可能需要多执行两遍或者手工调整,所以建议使用yum进行安装:

package compat-libstdc++-33 is not installed

package elfutils-libelf-devel is not installed

package gcc-c++ is not installed

package libaio-devel is not installed

package libstdc++-devel is not installed

package pdksh is not installed

package unixODBC is not installed

package unixODBC-devel is not installed

依次安装如下的包:

yum install -y compat-libstdc++-33

yum install -y elfutils-libelf-devel

yum install -y gcc-c++

yum install -y libaio-devel

yum install -y libstdc++-devel

yum install -y pdksh

yum install -y unixODBC

yum install -y unixODBC-devel

安装完成后再次检查是否还有没有安装的包。

注意:其中的pdksh包可以忽略。

1.1.5 内核参数--shell限制

1.1.5.1 /etc/security/limits.conf

设置Shell Limits

在/etc/security/limits.conf文件中加入下列行:

oracle soft nofile 65536

oracle hard nofile 65536

oracle soft nproc 16384

oracle hard nproc 16384

为安装用户设置资源限制

要改善 Linux 系统上的软件性能,必须对 Oracle 软件所有者用户(grid、oracle)增加以下资源限制:

Shell 限制 limits.conf 中的条目硬限制

打开文件描述符的最大数 nofile 65536

可用于单个用户的最大进程数 nproc 16384

进程堆栈段的最大大小 stack 10240

1.1.5.2 /etc/pam.d/login

在/etc/pam.d/login文件中加入下列行,如果里面没有的话:

session required /lib/security/pam_limits.so

session required pam_limits.so

1.1.5.3 /etc/profile

对默认的 shell 启动文件进行以下更改,以便更改所有 Oracle 安装所有者的 ulimit 设置:

在/etc/profile后加入以下语句:

if [ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 16384

else

ulimit -u 16384 -n 16384

fi

fi

1.1.5.4 /etc/sysctl.conf

Configuring Kernel Parameters for Linux

vim /etc/sysctl.conf

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 4294967295

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

生效

# /sbin/sysctl -p

参数的含义:http://blog.itpub.net/26736162/viewspace-2147273/

1.1.6 关闭防火墙

systemctl status firewalld.service

systemctl stop firewalld.service

systemctl disable firewalld.service

[root@localhost /]# systemctl status firewalld.service

● firewalld.service - firewalld - dynamic firewall daemon

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)

Active: active (running) since Thu 2016-04-07 18:54:29 PDT; 2h 20min ago

Main PID: 802 (firewalld)

CGroup: /system.slice/firewalld.service

└─802 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Apr 07 18:54:25 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...

Apr 07 18:54:29 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.

[root@localhost /]# systemctl stop firewalld.service  #关闭防火墙

[root@localhost /]# systemctl status firewalld.service  #再次查看防火墙状态,发现已关闭

● firewalld.service - firewalld - dynamic firewall daemon

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)

Active: inactive (dead) since Thu 2016-04-07 21:15:34 PDT; 9s ago

Main PID: 802 (code=exited, status=0/SUCCESS)

Apr 07 18:54:25 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...

Apr 07 18:54:29 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.

Apr 07 21:15:33 localhost systemd[1]: Stopping firewalld - dynamic firewall daemon...

Apr 07 21:15:34 localhost systemd[1]: Stopped firewalld - dynamic firewall daemon.

[root@localhost /]# systemctl disable firewalld.service  #禁止使用防火墙(重启也是禁止的)

Removed symlink /etc/systemd/system/dbus-org.Fedoraproject.FirewallD1.service.

Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

[root@localhost /]#

1.1.7 禁用selinux

修改/etc/selinux/config

编辑文本中的SELINUX=enforcing为SELINUX=disabled

[root@OCPLHR ~]# vi /etc/selinux/config

[root@OCPLHR ~]# more /etc/selinux/config

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - SELinux is fully disabled.

SELINUX=disabled

# SELINUXTYPE= type of policy in use. Possible values are:

# targeted - Only targeted network daemons are protected.

# strict - Full SELinux protection.

SELINUXTYPE=targeted

[root@OCPLHR ~]# /usr/sbin/sestatus -v

SELinux status: disabled

[root@OCPLHR ~]# getenforce

Disabled

临时关闭(不用重启机器):setenforce 0

查看SELinux状态:

1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态

SELinux status: enabled

2、getenforce ##也可以用这个命令检查

1.2 新建用户和组

The Oracle Inventory group (oinstall) 数据库安装组

The OSDBA group (dba) 数据库管理员组

The Oracle software owner (oracle) 管理员用户

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba -m oracle

passwd oracle

-m 表示为用户oracle 新建一个根目录

-g 表示为用户指定一个主group

-G 表示为用户指定一个副group

这样oracle既属于oinstall组也属于dba组。

平时主要是oinstall组发生作用。

[root@localhost ~]# id oracle

uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba) context=root:system_r:unconfined_t:SystemLow-SystemHigh

1.2.1 配置用户的环境变量

vi /home/oracle/.bash_profile

umask 022

export ORACLE_SID=orcl

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

export TMP=/tmp

export TMPDIR=$TMP

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH

export EDITOR=vi

export TNS_ADMIN=$ORACLE_HOME/network/admin

export ORACLE_PATH=.:$ORACLE_BASE/dba_scripts/sql:$ORACLE_HOME/rdbms/admin

export SQLPATH=$ORACLE_HOME/sqlplus/admin

#export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" --AL32UTF8 SELECT userenv('LANGUAGE') db_NLS_LANG FROM DUAL;

export NLS_LANG="AMERICAN_CHINA.ZHS16GBK"

alias sas='sqlplus / as sysdba'

#export PS1="[\u@\h-\`echo \$ORACLE_SID\` \W]$ "

#export PS1='[$LOGNAME@'`hostname`:'$PWD'']# '

1.3 新建安装目录

mkdir -p /u01/app/oracle

chown -R oracle:oinstall /u01/app

chmod -R 775 /u01/app

1.4 准备oracle安装文件

1.4.1 拷贝安装文件

[root@localhost ~]# mkdir -p /soft

[root@localhost ~]# chmod 777 /soft

可以直接拷贝,也可以用SecureFX、XFTP软件等方式拷贝到/soft目录下:

1.4.1.1 计算MD5值

安装文件

MD5

p10404530_112030_Linux-x86-64_1of7.zip

bd bf 8e 26 36 63 21 4d c6 0b 0f de f5 a3 0b 0a

p10404530_112030_Linux-x86-64_2of7.zip

e5 6b 3d 9c 6b c5 4b 77 17 e1 4b 6c 54 9c ef 9e

p10404530_112030_Linux-x86-64_3of7.zip

69 5c ba d7 44 75 22 39 c7 64 87 e3 24 f7 b1 ab

[root@OCPLHR soft]# md5sum p10404530_112030_Linux-x86-64_1of7.zip

bdbf8e263663214dc60b0fdef5a30b0a p10404530_112030_Linux-x86-64_1of7.zip

[root@OCPLHR soft]# md5sum p10404530_112030_Linux-x86-64_2of7.zip

e56b3d9c6bc54b7717e14b6c549cef9e p10404530_112030_Linux-x86-64_2of7.zip

[root@OCPLHR soft]#

[root@OCPLHR soft]#

[root@OCPLHR soft]# md5sum p10404530_112030_Linux-x86-64_3of7.zip

695cbad744752239c76487e324f7b1ab p10404530_112030_Linux-x86-64_3of7.zip

D:\Users\xiaomaimiao>certutil -hashfile "G:\安装文件\数据库\Oracle\oracle db安装\11.2.0.3\11.2.0.3_linux\64位\p10404530_112030_Linux-x86-64_1of7.zip" MD5

MD5 哈希(文件 G:\安装文件\数据库\Oracle\oracle db 安装\11.2.0.3\11.2.0.3_linux\64位\p10404530_112030_Linux-x86-64_1of7.zip):

bd bf 8e 26 36 63 21 4d c6 0b 0f de f5 a3 0b 0a

CertUtil: -hashfile 命令成功完成。

D:\Users\xiaomaimiao>certutil -hashfile "G:\安装文件\数据库\Oracle\oracle db安装\11.2.0.3\11.2.0.3_linux\64位\p10404530_112030_Linux-x86-64_2of7.zip" MD5

MD5 哈希(文件 G:\安装文件\数据库\Oracle\oracle db 安装\11.2.0.3\11.2.0.3_linux\64位\p10404530_112030_Linux-x86-64_2of7.zip):

e5 6b 3d 9c 6b c5 4b 77 17 e1 4b 6c 54 9c ef 9e

CertUtil: -hashfile 命令成功完成。

D:\Users\xiaomaimiao>certutil -hashfile "G:\安装文件\数据库\Oracle\oracle db安装\11.2.0.3\11.2.0.3_linux\64位\p10404530_112030_Linux-x86-64_3of7.zip" MD5

MD5 哈希(文件 G:\安装文件\数据库\Oracle\oracle db 安装\11.2.0.3\11.2.0.3_linux\64位\p10404530_112030_Linux-x86-64_3of7.zip):

69 5c ba d7 44 75 22 39 c7 64 87 e3 24 f7 b1 ab

CertUtil: -hashfile 命令成功完成。

1.4.2 解压安装文件

[root@OCPLHR soft]# ll

total 3401656

drwx------ 2 root root 16384 Jan 5 14:42 lost+found

-rw-r--r-- 1 root root 1358454646 Dec 14 2011 p10404530_112030_Linux-x86-64_1of7.zip

-rw-r--r-- 1 root root 1142195302 May 25 2012 p10404530_112030_Linux-x86-64_2of7.zip

-rw-r--r-- 1 root root 979195792 May 26 2012 p10404530_112030_Linux-x86-64_3of7.zip

[root@OCPLHR soft]# chmod 777 *

[root@OCPLHR soft]# ll

total 3401656

drwxrwxrwx 2 root root 16384 Jan 5 14:42 lost+found

-rwxrwxrwx 1 root root 1358454646 Dec 14 2011 p10404530_112030_Linux-x86-64_1of7.zip

-rwxrwxrwx 1 root root 1142195302 May 25 2012 p10404530_112030_Linux-x86-64_2of7.zip

-rwxrwxrwx 1 root root 979195792 May 26 2012 p10404530_112030_Linux-x86-64_3of7.zip

解压oracle安装文件包:如果不想输出信息,则可以加上 “> /dev/null 2>&1”,-d表示解压到的目录:

unzip p10404530_112030_Linux-x86-64_1of7.zip -d /tmp > /dev/null 2>&1 && unzip p10404530_112030_Linux-x86-64_2of7.zip -d /tmp > /dev/null 2>&1

unzip p10404530_112030_Linux-x86-64_1of7.zip > /dev/null 2>&1 && unzip p10404530_112030_Linux-x86-64_2of7.zip > /dev/null 2>&1

切换到oracle用户,图形界面登录,执行oracle安装文件

[root@OCPLHR soft]# su - oracle

[oracle@OCPLHR ~]$ cd /soft/

[oracle@OCPLHR soft]$ ll

total 3401656

drwxrwxrwx 2 root root 16384 Jan 5 14:42 lost+found

-rwxrwxrwx 1 root root 1358454646 Dec 14 2011 p10404530_112030_Linux-x86-64_1of7.zip

-rwxrwxrwx 1 root root 1142195302 May 25 2012 p10404530_112030_Linux-x86-64_2of7.zip

-rwxrwxrwx 1 root root 979195792 May 26 2012 p10404530_112030_Linux-x86-64_3of7.zip

[oracle@OCPLHR soft]$ ll

total 3401664

drwxrwxrwx 2 root root 16384 Jan 5 14:42 lost+found

-rwxrwxrwx 1 root root 1358454646 Dec 14 2011 p10404530_112030_Linux-x86-64_1of7.zip

-rwxrwxrwx 1 root root 1142195302 May 25 2012 p10404530_112030_Linux-x86-64_2of7.zip

-rwxrwxrwx 1 root root 979195792 May 26 2012 p10404530_112030_Linux-x86-64_3of7.zip

[oracle@OCPLHR soft]$ unzip p10404530_112030_Linux-x86-64_1of7.zip > /dev/null 2>&1 && unzip p10404530_112030_Linux-x86-64_2of7.zip > /dev/null 2>&1

[oracle@OCPLHR soft]$ ll

total 3401664

drwxr-xr-x 8 oracle oinstall 4096 Sep 22 2011 database

drwxrwxrwx 2 root root 16384 Jan 5 14:42 lost+found

-rwxrwxrwx 1 root root 1358454646 Dec 14 2011 p10404530_112030_Linux-x86-64_1of7.zip

-rwxrwxrwx 1 root root 1142195302 May 25 2012 p10404530_112030_Linux-x86-64_2of7.zip

-rwxrwxrwx 1 root root 979195792 May 26 2012 p10404530_112030_Linux-x86-64_3of7.zip

[oracle@OCPLHR soft]$ du -sh database

2.5G database

[oracle@OCPLHR soft]$ cd database/

[oracle@OCPLHR database]$ ll

total 100

drwxr-xr-x 12 oracle oinstall 4096 Sep 19 2011 doc

drwxr-xr-x 4 oracle oinstall 4096 Sep 22 2011 install

-rwxr-xr-x 1 oracle oinstall 28122 Sep 22 2011 readme.html

drwxr-xr-x 2 oracle oinstall 4096 Sep 22 2011 response

drwxr-xr-x 2 oracle oinstall 4096 Sep 22 2011 rpm

-rwxr-xr-x 1 oracle oinstall 3226 Sep 22 2011 runInstaller

drwxr-xr-x 2 oracle oinstall 4096 Sep 22 2011 sshsetup

drwxr-xr-x 14 oracle oinstall 4096 Sep 22 2011 stage

-rwxr-xr-x 1 oracle oinstall 5466 Aug 23 2011 welcome.html

1.5 开始静默安装

可以只执行一条命令即可安装完成数据库软件的部署:

/soft/database/runInstaller -silent -force -noconfig -IgnoreSysPreReqs -ignorePrereq -showProgress \

oracle.install.option=INSTALL_DB_SWONLY \

DECLINE_SECURITY_UPDATES=true \

UNIX_GROUP_NAME=oinstall \

INVENTORY_LOCATION=/u01/app/oraInventory \

SELECTED_LANGUAGES=en \

ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 \

ORACLE_BASE=/u01/app/oracle \

oracle.install.db.InstallEdition=EE \

oracle.install.db.isCustomInstall=false \

oracle.install.db.DBA_GROUP=dba \

oracle.install.db.OPER_GROUP=dba \

oracle.install.db.isRACOneInstall=false \

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE \

SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \

oracle.installer.autoupdates.option=SKIP_UPDATES

[root@localhost ~]# su - oracle

Last login: Wed Feb 7 08:48:45 PST 2018 on pts/3

[oracle@localhost ~]$ cd /soft/

[oracle@localhost soft]$ ll

total 2442048

drwxr-xr-x. 8 oracle oinstall 4096 Sep 22 2011 database

-rw-r--r--. 1 root root 1358454646 Dec 13 2011 p10404530_112030_Linux-x86-64_1of7.zip

-rw-r--r--. 1 root root 1142195302 May 25 2012 p10404530_112030_Linux-x86-64_2of7.zip

[oracle@localhost soft]$ cd database/

[oracle@localhost database]$ ll

total 52

drwxr-xr-x. 12 oracle oinstall 4096 Sep 18 2011 doc

drwxr-xr-x. 4 oracle oinstall 4096 Sep 22 2011 install

-rwxr-xr-x. 1 oracle oinstall 28122 Sep 22 2011 readme.html

drwxr-xr-x. 2 oracle oinstall 58 Sep 22 2011 response

drwxr-xr-x. 2 oracle oinstall 33 Sep 22 2011 rpm

-rwxr-xr-x. 1 oracle oinstall 3226 Sep 22 2011 runInstaller

drwxr-xr-x. 2 oracle oinstall 28 Sep 22 2011 sshsetup

drwxr-xr-x. 14 oracle oinstall 4096 Sep 22 2011 stage

-rwxr-xr-x. 1 oracle oinstall 5466 Aug 22 2011 welcome.html

[oracle@localhost database]$ /soft/database/runInstaller -silent -force -noconfig -IgnoreSysPreReqs -ignorePrereq -showProgress \

> oracle.install.option=INSTALL_DB_SWONLY \

> DECLINE_SECURITY_UPDATES=true \

> UNIX_GROUP_NAME=oinstall \

> INVENTORY_LOCATION=/u01/app/oraInventory \

> SELECTED_LANGUAGES=en \

> ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 \

> ORACLE_BASE=/u01/app/oracle \

> oracle.install.db.InstallEdition=EE \

> oracle.install.db.isCustomInstall=false \

> oracle.install.db.DBA_GROUP=dba \

> oracle.install.db.OPER_GROUP=dba \

> oracle.install.db.isRACOneInstall=false \

> oracle.install.db.config.starterdb.type=GENERAL_PURPOSE \

> SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \

> oracle.installer.autoupdates.option=SKIP_UPDATES

Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB. Actual 91506 MB Passed

Checking swap space: must be greater than 150 MB. Actual 1586 MB Passed

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2018-02-07_08-58-36AM. Please wait ...[oracle@localhost database]$ You can find the log of this install session at:

/u01/app/oraInventory/logs/installActions2018-02-07_08-58-36AM.log

Prepare in progress.

.................................................. 9% Done.

Prepare successful.

Copy files in progress.

.................................................. 14% Done.

.................................................. 20% Done.

.................................................. 26% Done.

.................................................. 31% Done.

.................................................. 36% Done.

.................................................. 44% Done.

.................................................. 49% Done.

.................................................. 55% Done.

.................................................. 63% Done.

.................................................. 68% Done.

.................................................. 73% Done.

.................................................. 78% Done.

.................................................. 83% Done.

..............................

Copy files successful.

Link binaries in progress.

..........

Link binaries successful.

Setup files in progress.

.................................................. 88% Done.

.................................................. 94% Done.

Setup files successful.

The installation of Oracle Database 11g was successful.

Please check '/u01/app/oraInventory/logs/silentInstall2018-02-07_08-58-36AM.log' for more details.

Execute Root Scripts in progress.

As a root user, execute the following script(s):

1. /u01/app/oraInventory/orainstRoot.sh

2. /u01/app/oracle/product/11.2.0/dbhome_1/root.sh

.................................................. 100% Done.

Execute Root Scripts successful.

Successfully Setup Software.

[oracle@localhost database]$

[root@localhost ~]# /u01/app/oraInventory/orainstRoot.sh

Changing permissions of /u01/app/oraInventory.

Adding read,write permissions for group.

Removing read,write,execute permissions for world.

Changing groupname of /u01/app/oraInventory to oinstall.

The execution of the script is complete.

[root@localhost ~]# /u01/app/oracle/product/11.2.0/dbhome_1/root.sh

Check /u01/app/oracle/product/11.2.0/dbhome_1/install/root_localhost.localdomain_2018-02-07_09-10-23.log for the output of root script

[root@localhost ~]#

相关推荐

排序算法--归并排序_归并排序例题讲解

原理如图所示(先分割再合并):归并排序代码工作原理:1、申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列2、设定两个指针,最初位置分别为两个已经排序序列的起始位置3、比较两个指针所...

八大排序算法-归并排序_归并排序 算法

算法思想归并排序分为三个步骤:1.分解:将数列分解成n个子数列。(如果是将数列分成2个子数列则为2路归并)2.治理:对每个子数列进行排序操作3.合并:将两个排好序的子数列进行合并生成新的数列算法实现P...

高级排序之归并排序、希尔排序_希尔排序和归并排序区别

前言继上次排序算法简单排序算法之冒泡、插入和选择排序-Java实现版后,本文学习高级排序算法——归并排序、希尔排序,快速排序将在后续更新。本文实现代码调用方法,部分来自前一个文章:简单排序算法之冒泡、...

Excel办公应用:按合并单元格排序的三大方法

1.按姓名对科目排序重点:在"C2"中输入公式=IF(A2<>"",1,C1+1),然后下拉填充。2.按姓名添加连续序号(方法一)重点:选择"A2:A11"单元格区域,在编辑栏中输入公...

快速排序 Vs. 归并排序 Vs. 堆排序——谁才是最强的排序算法

知乎上有一个问题是这样的:堆排序是渐进最优的比较排序算法,达到了O(nlgn)这一下界,而快排有一定的可能性会产生最坏划分,时间复杂度可能为O(n^2),那为什么快排在实际使用中通常优于堆排序?昨天刚...

归并排序思路图解 #归并排序_归并排序百度百科

排序算法1.图解。OK,让它排一下。看好了,要开始排了。能看出来像递归吗?肯定算法难,但是这个次数非常的多,不用管次数。这个是帝规,就是递归。这是并,这是并,这是两个有序数,组合成一个最后的大的有序数...

排序算法学习——归并排序_归并排序算法稳定吗

我们先看归并排序的定义归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(DivideandConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每...

动画|经典的归并排序究竟怎么玩儿?

作者|菠了个菜责编|郭芮由于LeetCode上的算法题很多涉及到一些基础的数据结构,为了更好的理解后续更新的一些复杂题目的动画,推出一个新系列——《图解数据结构》,主要使用动画来描述常见的数据...

Excel中,多列数据统一排名,Rank函数直接搞定

Rank实现多列联合排序排序,那太简单啦,Excel中,升序降序,一个按键就可以。但,那是针对单列情况,若需要联合多列数据进行排序呢?如下图所示,需要对1、3、5列进行统一排序,咋弄嘞?联合排序案例先...

【数据结构与算法】归并排序_数据结构中归并排序

归并排序是建立在归并操作的一种高效的排序方法,该方法采用了分治的思想,比较适用于处理较大规模的数据,但比较耗内存,今天我们聊聊归并排序排序思想一天,小一尘和慧能坐在石头上,眺望着远方师傅,我听山下的柳...

C++基础算法:归并排序_经典排序算法-----归并排序(c语言实现)

归并排序(MergeSort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(DivideandConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列。...

马士兵说之归并排序_马士兵教育的内推是真的

大家对于排序应该是挺熟悉的吧,马士兵老师特意为排序出了一波视频,当然文章是转自博客园的,马士兵老师的视频观看请点击下方的了解更多概要本章介绍排序算法中的归并排序。内容包括:1.归并排序介绍2.归并...

C++快速排序和归并排序_c++快速排序sort

快速排序每一轮挑选一个基准元素(随机选择,编程时一般选取第一个),并让比它大或小的元素移动到基准元素的两边,把数列拆解成了两个部分。而后对这两部分分别进行快速排序。时间复杂度:O(nlogn),辅助空...

经典的排序算法——归并排序_归并排序算法步骤

归并排序(MergeSort)是一种基于分治策略的高效排序算法。它将原始数组不断地分割成两个子数组,直到每个子数组只剩下一个元素为止(即基本有序),然后再通过合并已排序的子数组来最终得到完全有序的大...

归并排序_归并排序c++实现

归并排序概念:归并排序中涉及到一个概念就是分而治之,总序列化成小序列,将小序列排序好,利用排序好的小序列,再归并排序成原来要排序的序列。所以排序前先要分:functiondivide(arr){...

取消回复欢迎 发表评论: