初级排序(1)

初级排序(1)

冒泡排序

  冒泡排序实际上是一个非常简单的排序算法,也很容易实现----遍历文件,如果近邻两个元素大小顺序不对,就将两者交换,重复这样的操作直到整个文件排好序。 

  如下用TypeScript做了一个简单的演示:[代码地址](https://minstrelboy.github.io/demo/demo/bubble-sort/index.html)。

以下是基于链表的c语言版本实现:

#include <stdio.h>
#include <stdlib.h>

const int max = 100;

int get_random(){
        return (rand() % max);
}

void init_list(int a[],int len){
        for (int i = 0; i < len; i++) {
                a[i] = get_random();
        }
}

void swap(int * p1,int * p2){
        int p= *p1;
        *p1 = *p2;
        *p2 = p;
}


void print_list(int a[],int len){
        for (int i = 0; i<len; i++) {
                printf("%d ",a[i]);
        }
        printf("\n");
}

int main(int argc, char *argv[])
{
        int a[20];
        init_list(a,20);
        print_list(a,20);
        for (int i=0 ; i < 19; i++) {
                for (int j=19; j > i; j--) {
                       if(a[j-1] > a[j]){
                               swap(&a[j-1],&a[j]);
                       }
                }
              print_list(a,20);
        }
        return 0;
}

运行环境:ubuntu12.04

posted @ 2020-05-18 23:01  游吟男孩  阅读(107)  评论(0编辑  收藏  举报