初级排序(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