排序算法汇集

1、冒泡排序

冒泡排序是一种算法比较简单的排序,它的主要思想是:第一遍循环时,第一个元素和第二个元素比较,较小的放在前面,较大的数放在后面;第二个元素和第三个元素比较,较小的放在前面,较大的放在后面;直至倒数第二个元素和倒数第一个元素比较,这样最大的那个元素就会在最后的位置;同理,再进行第二次循环,倒数第二个元素的位置会存放第二大数。

C语言的算法实现如下:

void bubblesort( int a[], int n ) {
int i, j;
int temp, flag;
for( i = 0; i < n - 1; i++ ) {
flag = 1;
for( j = 0; j < n - i - 1; j++ ) {
if( a[j] > a[j+1] ) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
flag = 0;
}
}
if( 1 == flag ) {
printf( "sorted end: %d\n", i ); //打印第几遍循环时,数组已有序
break;
}
}
return;
}

2、插入排序

插入排序是一种稳定的排序方法。由n-1趟排序组成,对于第p趟排序,保证从0到p的位置上得元素是有序的。

C代码实现如下:

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




转载于:https://www.cnblogs.com/qi09/archive/2011/10/17/2215055.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值