基本的なデータ構造アルゴリズム_PHP チュートリアル
//---------------------
//基本的なデータ構造アルゴリズム
//---------------------
//二分探索 (配列内の要素を検索)
関数 bin_sch($array, $low, $high, $k){
If ($low
$mid = intval(($low+$high)/2);
if ($array[$mid] == $k){
return $mid;
}elseif ($k
return bin_sch($array, $low, $mid-1, $k);
}それ以外{
return bin_sch($array, $mid+1, $high, $k);
}
-1 を返します。
}
//逐次検索 (配列内の要素を検索)
関数 seq_sch($array, $n, $k){
$array[$n] = $k;
for($i=0; $i
if($array[$i]==$k){
壊す;
}
If ($i
$i を返す;
}その他{
return -1;
}
}
//線形テーブルの削除(配列で実装)
関数 delete_array_element($array, $i)
{
$len = count($array);
for ($j=$i; $j
$array[$j] = $array[$j+1];
}
array_pop($array);
$array を返します。
}
//バブルソート(配列ソート)
関数 bubble_sort($array)
{
$count = count($array);
if ($count
for($i=0; $i
for($j=$count-1; $j>$i; $j--){
if($ array [$ j]< $ array [$ j-1]){
}
$array を返します。
}
//クイックソート(配列ソート)
関数クイックソート($array) {
if (count($array)
$key = $array[0];
$left_arr = array();
$right_arr = array();
for ($i=1; $i
$right_arr[] = $array[$i];
}
$left_arr = クイックソート($left_arr);
$right_arr = クイックソート($right_arr);
array_merge($left_arr, array($key), $right_arr) を返します
}
//------------------------
// PHP 組み込み文字列関数の実装
//------------------------
//文字列の長さ
関数 strlen($str)
{
if ($str == '') は 0 を返します
$count = 0;
ながら (1){
If ($ Str [$ Count]! = Null) {
続く;
壊す;
}
$count を返します。
}
//部分文字列をインターセプトします
関数 substr($str, $start, $length=NULL)
{
If ($str=='' || $start>strlen($str))
If (($length!=NULL) && ($start>0) && ($length>strlen($str)-$start))
を返します。
If (($length!=NULL) && ($startstrlen($str)+$start))
If ($length == NULL) $length = (strlen($str) - $start);
if ($start
for ($i=(strlen($str)+$start); $i
}
if ($length > 0){
for ($i=$start; $i
}
if ($length
for ($i=$start; $i
}
戻り $substr;
}
//文字列反転
関数 strrev($str)
{
if ($str == '') は 0 を返します
for ($i=(strlen($str)-1); $i>=0; $i--){
$rev_str .= $str[$i];
}
戻り $rev_str;
}
//文字列比較
関数 strcmp($s1, $s2)
{
(strlen($s1)
for ($i=0; $i
続く;
false を返します。
}
0 を返します。
}
//文字列を検索します
関数 strstr($str, $substr)
{
$m = strlen($str);
$n = strlen($substr);if ($m
for ($i=0; $i
$sub = substr($str, $i, $n);
If (STRCMP ($ substr) == 0) $ i を返します。
}
偽を返します
}
//文字列置換
関数 str_replace($substr, $newsubstr, $str)
{
$m = strlen($str);
$n = strlen($substr);
$x = strlen($newsubstr);
if (strchr($str, $substr) == false) は false を返します
for ($i=0; $i
$i = strchr($str, $substr);
$str = str_delete($str, $i, $n);
$str = str_insert($str, $i, $newstr);
}
$str を返します。
}
//---------------------
// 自己実装した文字列処理関数
//---------------------
//文字列を挿入します
関数 str_insert($str, $i, $substr)
{
for($j=0; $j
$startstr .= $str[$j];
}
for ($j=$i; $j
$str = ($startstr . $substr . $laststr);
$str を返します。
}
//文字列を削除します
関数 str_delete($str, $i, $j)
{
for ($c=0; $c
$startstr .= $str[$c];
}
for ($c=($i+$j); $c
$str = ($startstr . $laststr);
$str を返します。
}
//文字列をコピー
関数 strcpy($s1, $s2)
{
if (strlen($s1)==NULL || !isset($s2))
を返します。
for ($i=0; $i
$s2 を返します。
}
//接続文字列
関数 strcat($s1, $s2)
{
If (!isset($s1) || !isset($s2))
を返します。
$newstr = $s1;
for($i=0; $i
$newsstr を返します。
}
//簡易エンコード関数(php_decode関数に相当)
関数 php_encode($str)
{
if ($str=='' && strlen($str)>128) は false を返します
for($i=0; $i
$s を返す;
}
//簡易デコード関数(php_encode関数に相当)
関数 php_decode($str)
{
if ($str=='' && strlen($str)>128) は false を返します。
for($i=0; $i
if ($c>106 && $c
if ($c>31 && $c
$word = chr($c);
$s .= $word;
}
$s を返します。
}
//简单加密関数数(与php_decrypt関数数对应)
関数 php_encrypt($str)
{
$encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890';
$decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359';
if (strlen($str) == 0) false を返します。
for ($i=0; $i
$enstr .= $decrypt_key[$j];
壊す;
}
}
}
$enstr を返します。
}
//简单解密関数数(与php_encrypt関数数对应)
関数 php_decrypt($str)
{
$encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890';
$decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359';
if (strlen($str) == 0) false を返します。
for ($i=0; $i
$enstr .= $encrypt_key[$j];
壊す;
}
}
}
$enstr を返します。
}
?>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











C++ の機械学習アルゴリズムが直面する一般的な課題には、メモリ管理、マルチスレッド、パフォーマンスの最適化、保守性などがあります。解決策には、スマート ポインター、最新のスレッド ライブラリ、SIMD 命令、サードパーティ ライブラリの使用、コーディング スタイル ガイドラインの遵守、自動化ツールの使用が含まれます。実践的な事例では、Eigen ライブラリを使用して線形回帰アルゴリズムを実装し、メモリを効果的に管理し、高性能の行列演算を使用する方法を示します。

01 今後の概要 現時点では、検出効率と検出結果の適切なバランスを実現することが困難です。我々は、光学リモートセンシング画像におけるターゲット検出ネットワークの効果を向上させるために、多層特徴ピラミッド、マルチ検出ヘッド戦略、およびハイブリッドアテンションモジュールを使用して、高解像度光学リモートセンシング画像におけるターゲット検出のための強化されたYOLOv5アルゴリズムを開発しました。 SIMD データセットによると、新しいアルゴリズムの mAP は YOLOv5 より 2.2%、YOLOX より 8.48% 優れており、検出結果と速度のバランスがより優れています。 02 背景と動機 リモート センシング技術の急速な発展に伴い、航空機、自動車、建物など、地表上の多くの物体を記述するために高解像度の光学式リモート センシング画像が使用されています。リモートセンシング画像の判読における物体検出

PHP の配列キー値の反転メソッドのパフォーマンスを比較すると、array_flip() 関数は、大規模な配列 (100 万要素以上) では for ループよりもパフォーマンスが良く、所要時間が短いことがわかります。キー値を手動で反転する for ループ方式は、比較的長い時間がかかります。

1. 58 Portraits プラットフォーム構築の背景 まず、58 Portraits プラットフォーム構築の背景についてお話ししたいと思います。 1. 従来のプロファイリング プラットフォームの従来の考え方ではもはや十分ではありません。ユーザー プロファイリング プラットフォームを構築するには、複数のビジネス分野からのデータを統合して、ユーザーの行動や関心を理解するためのデータ マイニングも必要です。最後に、ユーザー プロファイル データを効率的に保存、クエリ、共有し、プロファイル サービスを提供するためのデータ プラットフォーム機能も必要です。自社構築のビジネス プロファイリング プラットフォームとミドルオフィス プロファイリング プラットフォームの主な違いは、自社構築のプロファイリング プラットフォームは単一のビジネス ラインにサービスを提供し、オンデマンドでカスタマイズできることです。ミッドオフィス プラットフォームは複数のビジネス ラインにサービスを提供し、複雑な機能を備えていることです。モデリングを提供し、より一般的な機能を提供します。 2.58 中間プラットフォームのポートレート構築の背景のユーザーのポートレート 58

PHP の array_group_by 関数は、キーまたはクロージャ関数に基づいて配列内の要素をグループ化し、キーがグループ名、値がグループに属する要素の配列である連想配列を返すことができます。

データ構造とアルゴリズムは Java 開発の基礎です。この記事では、Java の主要なデータ構造 (配列、リンク リスト、ツリーなど) とアルゴリズム (並べ替え、検索、グラフ アルゴリズムなど) について詳しく説明します。これらの構造は、スコアを保存するための配列、買い物リストを管理するためのリンク リスト、再帰を実装するためのスタック、スレッドを同期するためのキュー、高速検索と認証のためのツリーとハッシュ テーブルの使用など、実際の例を通じて説明されています。これらの概念を理解すると、効率的で保守しやすい Java コードを作成できるようになります。

PHP の array_group() 関数を使用すると、指定したキーで配列をグループ化し、重複する要素を見つけることができます。この関数は次の手順で動作します。 key_callback を使用してグループ化キーを指定します。必要に応じて、value_callback を使用してグループ化値を決定します。グループ化された要素をカウントし、重複を特定します。したがって、array_group() 関数は、重複する要素を見つけて処理するのに非常に役立ちます。

数を数えるのは簡単そうに思えますが、実際にやってみるととても難しいです。あなたが野生動物の個体数調査を実施するために自然のままの熱帯雨林に運ばれたと想像してください。動物を見かけたら必ず写真を撮りましょう。デジタル カメラでは追跡された動物の総数のみが記録されますが、固有の動物の数に興味がありますが、統計はありません。では、このユニークな動物群にアクセスする最善の方法は何でしょうか?この時点で、今すぐ数え始めて、最後に写真から各新種をリストと比較すると言わなければなりません。ただし、この一般的なカウント方法は、数十億エントリに達する情報量には適さない場合があります。インド統計研究所、UNL、およびシンガポール国立大学のコンピューター科学者は、新しいアルゴリズムである CVM を提案しました。長いリスト内のさまざまな項目の計算を近似できます。
