冒泡排序实现(JavaCPHP)

    科技2022-07-10  167

    冒泡排序实现

    原理: 1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3、针对所有的元素重复以上的步骤,除了最后一个。 4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

    Java

    package jn.lc; import java.util.Arrays; //实现冒泡排序的方法 public class BubbleSort { public static void BubbleSort(int[] a) { int temp; for (int i = 0; i < a.length-1; i++) { for (int j = 0; j < a.length-1-i; j++) { if (a[j]>a[j+1]) { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } } //显示排序结果 public static void main(String[] args) { //int arr[] = new int[]{5,4,9,8,3,1,6,7,2}; int a[] = {5,4,9,8,3,1,6,7,2}; BubbleSort.BubbleSort(a); System.out.println("排序后的结果:"); System.out.println(Arrays.toString(a)); } }

    C语言

    #include<stdio.h> #include<stdlib.h> void BubbleSort(int a[],int lenth){ int i,j,temp; for(j = 0;j<lenth-1;j++){ int flag = 0; for(i = 0;i<lenth-1-j;i++){ if(a[i]>a[i+1]){ temp = a[i+1]; a[i+1] = a[i]; a[i] = temp; flag = 1; //数组无序时,设置flag = 1,若没进入排序的循环,则flag为0; } } if(flag == 0) return; } } int main(){ int arr[] = {5,9,2,6,7,4,1,8,3}; int lenth = sizeof(arr) / sizeof(arr[0]); int i = 0; printf("排序前数组:"); for (i = 0; i < lenth; i++) { printf("%d ", arr[i]); } printf("\n"); BubbleSort(arr, lenth); printf("排序后数组:"); for (i = 0; i < lenth; i++) { printf("%d ", arr[i]); } printf("\n"); system("pause"); return 0; }

    PHP

    <?php /** * Created by PhpStorm. * User: dell-pc * Date: 2020/10/3 * Time: 9:48 */ $arr = array(5,9,2,6,7,4,1,8,3); echo "<br/>排序前:"; print_r($arr); echo "<br/>"; //冒泡排序 for ($i = 0;$i<count($arr)-1;$i++){ $flag = 0; //排序优化 for ($j = 0;$j<count($arr)-1-$i;$j++){ if($arr[$j]>$arr[$j+1]){ $temp = $arr[$j]; $arr[$j]= $arr[$j+1]; $arr[$j+1] = $temp; $flag = 1; //如果排序未完成,则flag赋值为1 } } if($flag == 0){ break; } } //显示结果 echo "<br/>排序后:"; print_r($arr);
    Processed: 0.014, SQL: 8