C语言冒泡排序法代码

Python010

C语言冒泡排序法代码,第1张

冒泡排序是排序算法的一种,思路清晰,代码简洁,常被用在大学生计算机课程中。“冒泡”这个名字的由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。这里以从小到大排序为例进行讲解。基本思想及举例说明

冒泡排序的基本思想就是不断比较相邻的两个数,让较大的元素不断地往后移。经过一轮比较就,选出最大的数;经过第2轮比较,就选出次大的数,以此类推。下面以对 3 2 4 1 进行冒泡排序说明。

1.这个算法用rand函数产生新的要排序的数据,与已有的有序数列中的数据依次比较,如果遇到比他大的数据,就从该数据开始,一直交换到末尾,达到一个插入的效果。从而形成有序的数列。

2.此外,只用rand函数并不能达到真正随机的效果。如果要实现真正随机的效果,还要配合srand函数才行。

3.具体代码如下:#include "stdio.h"#include "stdlib.h"void main(){int a[10],temp,rprintf("请输入一个种子\n")scanf("%d",&r)srand(r)for(int i=0i<9i++) 。

选择排序:

void select_sort(int a[],int n)        //传入数组的要排序的元素个数

{int i,j,min,t

for(i=0i<n-1i++)

{  min=i     //min:当前最小值下标

for(j=i+1j<nj++)        //扫描余下的部分

if(a[min]>a[j])        //若有其它元素更小,就记录其下标

min=j

if(min!=i)        //保若最小值不在排序区首位,就换到首位

{t=a[min]a[min]=a[i]a[i]=t}

}

}

冒泡排序:

void bubble_sort(int a[], int n)        //传入数组的要排序的元素个数

{ int i, j, t

for (j=0j<n-1j++)        //n个元素比较n-1轮

for (i= 0i<n-1-ji++)   //比较相信的两个数

if(a[i]>a[i+1])          //若大小顺序不符,就交换

{t=a[i] a[i]=a[i+1]a[i+1]=t

}