zoukankan      html  css  js  c++  java
  • C/JS_实现冒泡排序

      冒泡排序算法的运作如下:(从后往前)

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

    JavaScript实现

     1 var arr = prompt("请输入一个数组(以“,”隔开):").split(",").map(function(data){
     2     return +data;});
     3 console.log("输入的数组是:"+arr);
     4 
     5 function fun(arr){
     6     var i,j,temp;
     7     for(i = 0; i < arr.length; i++){
     8         for(j = 0; j < arr.length-1-i; j++){ //注意:j < arr.length-1-i;这里是减i。
     9             if(arr[j] > arr[j+1]){
    10                 temp = arr[j];
    11                 arr[j] = arr [j+1];
    12                 arr[j+1] = temp;
    13             }
    14         }
    15     }
    16     return arr;
    17 }
    18 
    19 console.log("排序后的数组是: "+fun(arr));

      优化:

     1 var arr = prompt("请输入一个数组(以“,”隔开):").split(",").map(function(data){
     2     return +data;});
     3 console.log("输入的数组是:"+arr);
     4 
     5 function fun(arr){
     6     var i,j,temp,flag=0;//这里
     7     for(i = 0; i < arr.length; i++){
     8         for(j = 0; j < arr.length-1-i; j++){ //注意:j < arr.length-1-i;这里是减i。
     9             if(arr[j] > arr[j+1]){
    10                 flag=1;//这里
    11                 temp = arr[j];
    12                 arr[j] = arr [j+1];
    13                 arr[j+1] = temp;
    14             }
    15         }
    16         if(flag==0)break;//这里
    17     }
    18     return arr;
    19 }
    20 
    21 console.log("排序后的数组是: "+fun(arr));

      C语言

     1 #include <stdio.h>
     2 void fun(int *arr,int size)
     3 {
     4     int i, j, temp;
     5     for(i=0; i<size; i++)
     6     {
     7         for(j=0; j<size-1-i; j++)
     8         {
     9             if(arr[j] > arr[j+1])
    10             {
    11                 temp = arr[j];
    12                 arr[j] = arr[j+1];
    13                 arr[j+1] = temp;
    14             }
    15         }
    16     }
    17 }
    18 
    19 int main()
    20 {
    21     int  arr[] = {4,3,5,6,1,2,10,9,8}, i, size;
    22     size = sizeof(arr)/sizeof(arr[0]);
    23     fun(arr,size);
    24     for(i=0; i<size; i++)
    25     {
    26         printf("%d  ",arr[i]);
    27     
    28     }    
    29     printf("
    ");
    30 }
  • 相关阅读:
    vue.js中created方法作用
    UasyUi的各种方法整理
    echarts 3.8.4: tree设置节点与节点之间连线的颜色,可以独立每条线分开设置
    echarts中的树形结构图(参数分析)
    echarts y轴数据如果太大就会造成坐标轴显示不完全的问题
    echarts 网络拓扑告警闪烁及提示信息自定义
    echarts 树图问题
    echarts grid多格显示问题
    echarts中自定义tooltip的换行问题
    yarn install 安装报错问题
  • 原文地址:https://www.cnblogs.com/LinSL/p/7339490.html
Copyright © 2011-2022 走看看