当前位置:编程学习 > C#/ASP.NET >>

冒泡算法

一、冒泡算法

1、方式一


[c-sharp]
 bubble_sort(int Array[],int Size)
{
    int i,j,temp;


    if(Array == NULL)

        return -1;


    for(i=0;i<Size-1;i++) { 
        for(j=0;j<Size-1-i;j++) { 
            if(Array[j]>Array[j+1]) { 
                temp = Array[j]; 
                Array[j] = Array[j+1]; 
                Array[j+1] = temp; 
            } 
        } 
    }
    return 0; 

 2、方式二

int bubble_sort(int Array[], int size)
{
    int i = size, j;
    int temp;
    if(Array == NULL)
        return -1;
    while(i-- > 0) {
        for(j = 0; j < i - 1; j++) {
            if(Array[j] > Array[j + 1]) {
                temp = Array[j];
                Array[j] = Array[j + 1];
                Array[j + 1] = temp;
            }
        }
    }
    return 0;
}

 

 3、方式三


int bubble_sort(int Array[], int size)
{
    int i = size, j;
    int temp;
    if(Array == NULL)
        return -1;
    for(i = size; i > 0; i--) {
        for(j = 0; j < i - 1; j++) {
            if(Array[j] > Array[j + 1]) {
                temp = Array[j];
                Array[j] = Array[j + 1];
                Array[j + 1] = temp;
            }
        }
    }
    return 0;
}

二、冒泡算法优化


在函数中定义一个bool 的变量 issorted ,在每趟对剩余的数字排序时,先把它设为true,然后当发生两个两个相邻的数没有按要求排时,在交换这两个数的同时,把issorted设为false,不然就一直保持为true。

      在进行好一趟排序之后,测试issorted这个变量的值,如果保持true,就说明已经排好序了,停止继续排序,不然进行下一趟排序。

具体代码:


[c-sharp]
void bubble_sort(int Array[], int Size)

    int i,j,temp; 
    bool issorted;


    for(i=0; i<Size-1; i++){ 
        issorted = true; 
        for(j=0; j<Size-1-i; j++){ 
            if(Array[j] > Array[j+1]){ 
                temp = Array[j]; 
                Array[j] = Array[j+1]; 
                Array[j+1] = temp; 
                issorted = false; 
            } 
        } 
        if(issorted) 
            break; 
    } 

补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,