数据结构基础7.1:简单排序(冒泡、选择、插入)

来源:互联网 发布:c 数组最大长度 编辑:程序博客网 时间:2024/05/16 07:29

简单排序有三种:冒泡排序、选择排序、插入排序。

1.冒泡排序(这里介绍两种方式):

A.代码如下:

void Bubble_sort1(int a[], int n){    int i, j, flag, temp;    for(i = n - 1; i > 0; i--) {        flag = 0;        for(j = 0; j < i; j++) {            if(a[j] > a[j+1]) {                temp = a[j];                a[j] = a[j+1];                a[j+1] = temp;                flag = 1;            }        }        if(flag == 0)            break;    }}

B.代码如下:

void Bubble_sort2(int a[], int n){    int i, j, flag, temp;    for(i = 0; i < n - 1; i++) {        flag = 0;        for(j = i + 1; j < n; j++) {            if(a[i] > a[j]) {                temp = a[j];                a[j] = a[i];                a[i] = temp;                flag = 1;            }        }        if(flag == 0)            break;    }}

2.选择排序:

代码如下:

void Selection_Sort(int a[], int n){    int i, j, min, temp, index;    for(i = 0; i < n - 1; i++) {        min = a[i];        index = i;        for(j = i + 1; j < n; j++) {            if(min > a[j]) {                min = a[j];                index = j;            }        }        temp = a[i];        a[i] = min;        a[index] = temp;    }}

3.插入排序:

代码如下:

void Insertion_Sort(int a[], int n){    int i, j, temp;    for(i = 1; i < n; i++) {        temp = a[i];        j = i;        while(j > 0 && temp < a[j-1]) {            a[j] = a[j-1];            j--;        }        a[j] = temp;    }}



0 0