Maison développement back-end tutoriel php 简单排序算法 java排序算法 排序算法总结 堆排序算

简单排序算法 java排序算法 排序算法总结 堆排序算

Jul 29, 2016 am 08:52 AM
排序算法 简单

$arr = array(
    12,
    45,
    89,
    3,
    24,
    55,
    223,
    76,
    22,
    11,
    28,
    112,
    20,
    434,
    23,
    65,
    65,
    765,
    6,
    8,
    23,
    5,
    33,
    553,
    45,
    423,
    64,
    77,
    84,
    23
);
/**
 * 冒泡排序算法,时间复杂度n2/2次
 * 冒泡排 序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。
 * 然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最 后。
 * 在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第 二个数
 * (倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过 程,
 * 直至最终完成排序。
 */
function maopao_sort($arr)
{
    $count = count($arr);
    $tmp;
    $m = 0; // 用于计算执行多少次
    for ($i = 0; $i         for ($j = 0; $j             if ($arr[$j] > $arr[$j + 1]) {
                $tmp = $arr[$j];
                $arr[$j] = $arr[$j + 1];
                $arr[$j + 1] = $tmp;
            }
            $m ++;
        }
    }
    print_r($arr);
    echo $m;
}
/**
 * 选择排序算法,时间复杂度n2/2次
 * 1.从待排序序列中,找到关键字最小的元素;
 * 2.如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;
 * 3.从余下的 N - 1 个元素中,找出关键字最小的元素,重复( 1 )、( 2 )步,直到排序结束
 */
function select_sort($arr)
{
    $count = count($arr);
    $tmp;
    $m = 0; // 用于计算执行多少次
    for ($i = 0; $i         $p = $i;
        for ($j = $i + 1; $j             if ($arr[$p] > $arr[$j]) {
                $p = $j;
            }
            $m ++;
        }
        if ($p != $i) {
            $tmp = $arr[$p];
            $arr[$p] = $arr[$i];
            $arr[$i] = $tmp;
        }
    }
    print_r($arr);
    echo $m;
}
/**
 * 插入排序算法,时间复杂度n2/2次
 * 插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕
 */
function insert_sort($arr)
{
    $count = count($arr);
    $tmp;
    $m = 0; // 用于计算执行多少次
    for ($i = 1; $i         $tmp = $arr[$i];
        for ($j = $i - 1; $j >= 0; $j --) {
            if ($tmp                 $arr[$j + 1] = $arr[$j];
                $arr[$j] = $tmp;
            } else {
                break;
            }
            $m ++;
        }
    }
    print_r($arr);
    echo $m;
}
/**
 * 快速排序算法,时间复杂度n2/2次
 * 该方法的基本思想是:
 * 1.先从数列中取出一个数作为基准数。
 * 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
 * 3.再对左右区间重复第二步,直到各区间只有一个数。
 */
function quick_sort($arr)
{
    $count = count($arr);
    if ($count         return $arr;
    }
    $tmp = $arr[0];
    $left_array = array();
    $right_array = array();
    
    for ($i = 1; $i         if ($arr[$i]             $left_array[] = $arr[$i];
        } else {
            $right_array[] = $arr[$i];
        }
        $m ++;
    }
    
    $left_array = quick_sort($left_array);
    $right_array = quick_sort($right_array);
    return array_merge($left_array, array(
        $tmp
    ), $right_array);
}
// print_r(quick_sort($arr));
// // print_r(quickSort($arr));
function quickpaixu($arr)
{
    $count = count($arr);
    if ($count         return $arr;
    }
    $key = $arr[0]; // 取一个值,稍后用来比较;
    $left_arr = array();
    $right_arr = array();
    for ($i = 1; $i         if ($arr[$i]             $left_arr[] = $arr[$i];
        } else {
            $right_arr[] = $arr[$i];
        }
    }
    $left_arr = quickpaixu($left_arr); // 进行递归;
    $right_arr = quickpaixu($right_arr);
    return array_merge($left_arr, array(
        $key
    ), $right_arr); // 将左中右的值合并成一个数组;
} // 以下是测试
  // print_r(quickpaixu($arr));
?>

以上就介绍了简单排序算法,包括了排序算法,简单方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le moyen le plus simple d'interroger le numéro de série du disque dur Le moyen le plus simple d'interroger le numéro de série du disque dur Feb 26, 2024 pm 02:24 PM

Le numéro de série du disque dur est un identifiant important du disque dur et est généralement utilisé pour identifier de manière unique le disque dur et identifier le matériel. Dans certains cas, nous pouvons avoir besoin d'interroger le numéro de série du disque dur, par exemple lors de l'installation d'un système d'exploitation, de la recherche du pilote de périphérique approprié ou de la réparation du disque dur. Cet article présentera quelques méthodes simples pour vous aider à vérifier le numéro de série du disque dur. Méthode 1 : utilisez l’invite de commande Windows pour ouvrir l’invite de commande. Dans le système Windows, appuyez sur les touches Win+R, entrez « cmd » et appuyez sur la touche Entrée pour ouvrir la commande

Problèmes complexes de conception expérimentale sur le marché biface de Kuaishou Problèmes complexes de conception expérimentale sur le marché biface de Kuaishou Apr 15, 2023 pm 07:40 PM

1. Contexte du problème 1. Introduction à l'expérience du marché biface Le marché biface, c'est-à-dire une plateforme, comprend deux participants, producteurs et consommateurs, et les deux parties se promeuvent mutuellement. Par exemple, Kuaishou a un producteur vidéo et un consommateur vidéo, et les deux identités peuvent se chevaucher dans une certaine mesure. L'expérimentation bilatérale est une méthode expérimentale qui combine des groupes du côté des producteurs et des consommateurs. Les expériences bilatérales présentent les avantages suivants : (1) L'impact de la nouvelle stratégie sur deux aspects peut être détecté simultanément, tels que les changements dans le DAU du produit et le nombre de personnes téléchargeant des œuvres. Les plateformes bilatérales ont souvent des effets de réseau transversaux. Plus il y a de lecteurs, plus les auteurs seront actifs, et plus les auteurs seront actifs, plus les lecteurs suivront. (2) Le débordement et le transfert d'effet peuvent être détectés. (3) Aidez-nous à mieux comprendre le mécanisme d'action. L'expérience AB elle-même ne peut pas nous dire la relation entre la cause et l'effet, seulement.

Comment rédiger un générateur simple de rapports sur les performances des étudiants en utilisant Java ? Comment rédiger un générateur simple de rapports sur les performances des étudiants en utilisant Java ? Nov 03, 2023 pm 02:57 PM

Comment rédiger un générateur simple de rapports sur les performances des étudiants en utilisant Java ? Student Performance Report Generator est un outil qui aide les enseignants ou les éducateurs à générer rapidement des rapports sur les performances des élèves. Cet article explique comment utiliser Java pour rédiger un simple générateur de rapports sur les performances des étudiants. Tout d’abord, nous devons définir l’objet étudiant et l’objet note étudiant. L'objet étudiant contient des informations de base telles que le nom et le numéro de l'étudiant, tandis que l'objet score de l'étudiant contient des informations telles que les résultats des matières et la note moyenne de l'étudiant. Voici la définition d'un objet étudiant simple : public

Comment écrire un système de réservation en ligne simple via PHP Comment écrire un système de réservation en ligne simple via PHP Sep 26, 2023 pm 09:55 PM

Comment écrire un système de réservation en ligne simple via PHP. Avec la popularité d'Internet et la recherche de commodité des utilisateurs, les systèmes de réservation en ligne deviennent de plus en plus populaires. Qu'il s'agisse d'un restaurant, d'un hôpital, d'un salon de beauté ou d'un autre secteur de services, un simple système de réservation en ligne peut améliorer l'efficacité et offrir aux utilisateurs une meilleure expérience de service. Cet article explique comment utiliser PHP pour écrire un système de réservation en ligne simple et fournit des exemples de code spécifiques. Créer une base de données et des tables Tout d'abord, nous devons créer une base de données pour stocker les informations de réservation. Dans MonS

Démarrage rapide : utilisez les fonctions du langage Go pour implémenter un système de gestion de bibliothèque simple Démarrage rapide : utilisez les fonctions du langage Go pour implémenter un système de gestion de bibliothèque simple Jul 30, 2023 am 09:18 AM

Démarrage rapide : implémentation d'un système de gestion de bibliothèque simple à l'aide des fonctions du langage Go Introduction : Avec le développement continu du domaine de l'informatique, les besoins en applications logicielles deviennent de plus en plus diversifiés. En tant qu'outil de gestion commun, le système de gestion de bibliothèque est également devenu l'un des systèmes nécessaires pour de nombreuses bibliothèques, écoles et entreprises. Dans cet article, nous utiliserons les fonctions du langage Go pour implémenter un système simple de gestion de bibliothèque. Grâce à cet exemple, les lecteurs peuvent apprendre l'utilisation de base des fonctions du langage Go et comment créer un programme pratique. 1. Idées de design : commençons par

Comment écrire un système simple de recommandation musicale en C++ ? Comment écrire un système simple de recommandation musicale en C++ ? Nov 03, 2023 pm 06:45 PM

Comment écrire un système simple de recommandation musicale en C++ ? Introduction : Le système de recommandation musicale est un point névralgique de la recherche dans les technologies de l'information modernes. Il peut recommander des chansons aux utilisateurs en fonction de leurs préférences musicales et de leurs habitudes comportementales. Cet article explique comment utiliser C++ pour écrire un système simple de recommandation musicale. 1. Collecter les données des utilisateurs Tout d'abord, nous devons collecter les données sur les préférences musicales des utilisateurs. Les préférences des utilisateurs pour différents types de musique peuvent être obtenues via des enquêtes en ligne, des questionnaires, etc. Enregistrer les données dans un fichier texte ou une base de données

Comment utiliser PHP pour développer des fonctions simples de gestion de fichiers Comment utiliser PHP pour développer des fonctions simples de gestion de fichiers Sep 20, 2023 pm 01:09 PM

Introduction à l'utilisation de PHP pour développer des fonctions simples de gestion de fichiers : Les fonctions de gestion de fichiers sont une partie essentielle de nombreuses applications Web. Il permet aux utilisateurs de télécharger, télécharger, supprimer et afficher des fichiers, offrant ainsi aux utilisateurs un moyen pratique de gérer les fichiers. Cet article expliquera comment utiliser PHP pour développer une fonction simple de gestion de fichiers et fournira des exemples de code spécifiques. 1. Créer un projet Tout d'abord, nous devons créer un projet PHP de base. Créez le fichier suivant dans le répertoire du projet : index.php : page principale, utilisée pour afficher la table d'upload

Comment écrire un jeu simple de démineur en C++ ? Comment écrire un jeu simple de démineur en C++ ? Nov 02, 2023 am 11:24 AM

Comment écrire un jeu simple de démineur en C++ ? Minesweeper est un jeu de réflexion classique dans lequel les joueurs doivent révéler tous les blocs selon la disposition connue du champ de mines sans marcher sur les mines. Dans cet article, nous présenterons comment écrire un jeu simple de dragueur de mines en utilisant C++. Tout d’abord, nous devons définir un tableau bidimensionnel pour représenter la carte du jeu Minesweeper. Chaque élément du tableau peut être une structure utilisée pour stocker l'état du bloc, par exemple s'il est révélé, s'il y a des mines, etc. De plus, nous devons également définir

See all articles