백엔드 개발 PHP 튜토리얼 두 개의 정렬된 배열 병합

두 개의 정렬된 배열 병합

Aug 08, 2016 am 09:22 AM
amp data

질문: 정렬된 배열 A와 B가 있습니다. 배열 A의 남은 공간은 B를 수용하기에 충분합니다. B의 모든 숫자를 A에 삽입하면 모든 숫자가 정렬되는 함수를 구현하십시오. 의.

많은 사람들의 초기 아이디어는 충분히 폭력적인 단순히 삽입하고 A에서 처음부터 끝까지 직접 이동하여 적절한 위치를 찾은 다음 모든 후속 요소를 이동하여 하나의 공간을 만드는 것입니다. 새로 삽입된 숫자를 채우는 것은 가장 비효율적인 방법입니다.

A와 B의 숫자를 끝부터 비교하여 더 큰 숫자를 A의 끝에 복사하는 것이 더 좋은 방법입니다.

문자열의 공백을 "%20"으로 바꾸려는 경우(네트워크 프로그래밍에서 URL에 특수 문자가 포함된 경우)에도 이 솔루션을 적용할 수 있습니다. 공백, "#" 등의 문자는 서버측에서 제대로 해석되지 않을 수 있으므로 변환이 필요합니다. 예를 들어 '%' 뒤에 ASCII 코드의 두 자리 16진수 표현을 추가하는 것입니다. , 공백의 ASCII 코드는 32이므로 16진수 값은 20이며 이는 %20으로 변환됩니다.) 삽입을 위해 처음부터 끝까지 이동하면 문자열이 이동되는 횟수는 입니다. 처음부터 시작하면 문자열에 더 많은 메모리를 적용한 다음 끝부터 복사하고 공백이 나타나면 교체하면 이동 횟수를 효과적으로 줄일 수 있습니다.

배열 병합 코드는 다음과 같습니다.

<?php
/*
$data1 数组A
$data2 数组B
$num1  数组A的有效元素个数
*/
function merge(&$data1,$data2,$num1)
{
	$total=count($data1);
	$num2=count($data2);
	while($num1>0&&$num2>0)
	{
		if($data1[$num1-1]>$data2[$num2-1])
		{
			$data1[$total-1]=$data1[$num1-1];
			$total--;
			$num1--;
		}
		else
		{
			$data1[$total-1]=$data2[$num2-1];
			$total--;
			$num2--;
		}
	}
	if($num2>0)
	{
		while($total>0&&$num2>0)
		{
			$data1[$total-1]=$data2[$num2-1];
			$total--;
			$num2--;
		}
	}
}

$a=array(1,3,5,7,9,0,0,0,0,0);
$b=array(2,4,6,8,10);
merge($a,$b,5);
print_r($a);
로그인 후 복사

저작권 안내 : 이 글은 해당 블로거의 원본 글이므로, 블로거의 허락 없이 복제할 수 없습니다.

위 내용은 관련 측면을 포함하여 두 개의 정렬된 배열을 병합하는 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

AMP는 어떤 코인인가요? AMP는 어떤 코인인가요? Feb 24, 2024 pm 09:16 PM

AMP 코인이란 무엇입니까? AMP 토큰은 Synereo 플랫폼의 주요 거래 통화로 2015년 Synereo 팀에 의해 만들어졌습니다. AMP 토큰은 다양한 기능과 용도를 통해 사용자에게 더 나은 디지털 경제 경험을 제공하는 것을 목표로 합니다. AMP 토큰의 목적 AMP 토큰은 Synereo 플랫폼에서 다양한 역할과 기능을 가지고 있습니다. 첫째, 플랫폼의 암호화폐 보상 시스템의 일부로서 사용자는 콘텐츠를 공유하고 홍보함으로써 AMP 보상을 얻을 수 있으며, 이는 사용자가 플랫폼 활동에 보다 적극적으로 참여하도록 장려하는 메커니즘입니다. AMP 토큰은 Synereo 플랫폼에서 콘텐츠를 홍보하고 배포하는 데에도 사용할 수 있습니다. 사용자는 AMP 토큰을 사용하여 더 많은 시청자가 보고 공유하도록 유도함으로써 플랫폼에서 콘텐츠의 가시성을 높일 수 있습니다.

데이터 폴더에는 어떤 데이터가 있나요? 데이터 폴더에는 어떤 데이터가 있나요? May 05, 2023 pm 04:30 PM

데이터 폴더에는 소프트웨어 설정 및 설치 패키지와 같은 시스템 및 프로그램 데이터가 포함되어 있습니다. 데이터 폴더의 각 폴더는 데이터 파일이 파일 이름인 Data 또는 명명된 데이터를 참조하는지 여부에 관계없이 다양한 유형의 데이터 저장 폴더를 나타냅니다. , 모두 시스템이나 프로그램에 의해 사용자 정의된 데이터 파일입니다. 데이터는 데이터 저장을 위한 백업 파일입니다. 일반적으로 meidaplayer, 메모장 또는 워드로 열 수 있습니다.

mysql 로드 데이터가 왜곡되면 어떻게 해야 합니까? mysql 로드 데이터가 왜곡되면 어떻게 해야 합니까? Feb 16, 2023 am 10:37 AM

잘못된 mysql 로드 데이터에 대한 해결 방법: 1. 잘못된 문자가 있는 SQL 문을 찾습니다. 2. 문을 "LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE 문자 집합 utf8;"으로 수정합니다.

xdata와 데이터의 차이점은 무엇입니까 xdata와 데이터의 차이점은 무엇입니까 Dec 11, 2023 am 11:30 AM

차이점은 다음과 같습니다. 1. xdata는 일반적으로 독립변수를 나타내고, data는 전체 데이터 세트를 나타냅니다. 2. xdata는 주로 데이터 분석 모델을 구축하는 데 사용되는 반면, data는 데이터 분석 및 통계에 사용됩니다. 회귀 분석, 분산 분석, 예측 모델링의 경우 다양한 통계 방법을 사용하여 데이터를 분석할 수 있습니다. 4. xdata는 일반적으로 데이터 전처리가 필요하며 데이터에는 완전한 원본 데이터가 포함될 수 있습니다.

AI 프로젝트 실패율은 상위 80%입니다. 연구에서는 문제 인식이 부족하고 주요 문제 중에서 최신 기술 동향에 초점을 맞춘 것으로 나타났습니다. AI 프로젝트 실패율은 상위 80%입니다. 연구에서는 문제 인식이 부족하고 주요 문제 중에서 최신 기술 동향에 초점을 맞춘 것으로 나타났습니다. Aug 31, 2024 am 12:59 AM

모든 사람과 그들의 이모는 부풀려진 이익 마진과 마케팅 과대 광고를 찾아 AI 열차에 뛰어드는 것 같습니다. 이러한 AI 과대 광고의 대표적인 예로 AMD의 최근 Ryzen 리브랜딩을 살펴보세요. RAND가 실시한 최근 ​​연구에서는 다음과 같은 사실이 밝혀졌습니다.

판매보다 더 많은 수익: Humane Ai Pin이 상업적 재앙이 되고 있습니다. 판매보다 더 많은 수익: Humane Ai Pin이 상업적 재앙이 되고 있습니다. Aug 08, 2024 pm 01:14 PM

Humane Ai Pin이 출시된 직후, 원래 광고된 기능의 대부분이 제대로 작동하지 않거나 단순히 누락되었으며, 배터리 수명이 부족했기 때문에 AI 장치가 시장에 출시될 준비가 전혀 되어 있지 않다는 신랄한 리뷰가 나왔습니다.

MySQL은 미친 오류 로그를 작성합니다 MySQL은 미친 오류 로그를 작성합니다 Feb 18, 2024 pm 05:00 PM

핵심 비즈니스 데이터베이스인 버전은 MySQL8.34 Community Server Edition입니다. 이 데이터베이스 서버의 오류 로그는 출시 이후 매우 빠르게 증가하여(아래 그림 참조) 24시간마다 10G 이상의 용량으로 증가했습니다. 장애알람이 발생하였고, 정상적인 업무접근에는 지장이 없었기 때문에 관련 인력의 MySQL 서비스 재시작을 허용하지 않았습니다. 이러한 상황을 고려하여 매일 밤 정해진 시간에 이러한 로그를 정리하는 자동 예약 작업을 설정해야 했습니다. 특정 작업의 경우 시스템 명령줄에서 "crontab-e"를 실행하고 다음 텍스트 줄을 추가합니다: 0001***echo>/data/mysql8/data/mysql_db/mysql.log 저장하고 편집 모드 종료

vue 컴포넌트의 데이터는 함수가 될 수 없나요? vue 컴포넌트의 데이터는 함수가 될 수 없나요? Dec 19, 2022 pm 05:22 PM

아니요, vue 구성 요소의 데이터는 함수여야 합니다. Vue의 컴포넌트는 재사용을 위해 사용됩니다. 데이터 재사용을 방지하기 위해 함수로 정의됩니다. vue 컴포넌트의 데이터 데이터는 서로 분리되어 서로 영향을 미치지 않아야 하며, 나중에 컴포넌트의 데이터 데이터가 재사용되는 위치에 변경될 때 데이터 데이터를 한 번씩 복사해야 합니다. 다른 데이터는 복사됩니다. 재사용된 로컬 컴포넌트의 데이터 데이터가 영향을 받지 않으면 data 함수를 통해 컴포넌트의 상태로 객체를 반환해야 합니다.

See all articles