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 }
原文地址:https://www.cnblogs.com/LinSL/p/7339490.html