zoukankan      html  css  js  c++  java
  • 冒泡排序算法的实现:

    冒泡排序的基本思想是:交换。

    1.即比较相邻的前后两个数据,如果前面的数据大于后面的数据,就进行一次交换;

    2.这样每经过一躺比较后就有一个最大的数下沉到底部,直到整个数组有序。

    算法的代码实现如下:

     1 /*冒泡排序算法的实现代码1:*/
     2 void bubblesort(int a[], int n)
     3 {
     4     int i, j;
     5 
     6     for(i = 0; i < n; i++)
     7         for(j = 1; j < n-i; j++)
     8             if(a[j-1] > a[j])
     9                 swap(&a[j-1], &a[j]);
    10 }

    代码1效率太低,当整个数组已经达到有序时,此时不应该继续比较和交换,解决方案是设置标志位。

    /*冒泡排序算法的实现代码2:*/
    1
    void bubblesort(int a[], int n) 2 { 3 int j, k; 4 bool flag; 5 6 flag = true; 7 k = n; 8 while(flag) 9 { 10 flag = false; 11 12 for(j = 1; j < k; j++) 13 if(a[j-1] > a[j]) 14 { 15 swap(&a[j-1], &a[j]); 16 flag = true; 17 } 18 k--; 19 } 20 }

    代码2就是常用的排序算法,不过当排序的数据很多,但只有前面几个数据是无序的,就需要每次记住最后交换数据的位置。

     1 /* 冒泡排序算法的代码实现3 */
     2 void bubblesort(int a[], int n)
     3 {
     4     int j, k; 
     5     int flag;
     6 
     7     flag = n;
     8     while(flag > 0)
     9     {
    10         k = flag;
    11         flag = 0;
    12         
    13         for(j = 1; j < k; j++)
    14             if(a[j-1] > a[j])
    15             {
    16                 swap(&a[j-1], &a[j]);
    17                 flag = j;
    18             }
    19     }
    20 }
  • 相关阅读:
    Javascript | 模拟mvc实现点餐程序
    DataTables实现按分组小计
    [Webcast]Silverlight探秘系列课程
    python 环境搭建
    MailMessage
    WebRequest
    消息队列(Message Queue)
    c# 缓存
    c# 反射
    数据库连接超时
  • 原文地址:https://www.cnblogs.com/philospy/p/4088207.html
Copyright © 2011-2022 走看看