简单排序算法

4 篇文章 0 订阅
3 篇文章 0 订阅

简单排序算法

<1>冒泡算法:
#include <iostream>
#define N 5
using namespace std;
void fun(int a[],int m);
int main(void)
{
	int i;
	int a[N] = {85,56,32,58,12};
	fun(a,N);
	for (i = 0;i < N;i++)
	  cout << a[i] << ' ';
	return 0;
}

void fun(int a[],int m)
{
	int i,j,temp;
	for (i = 0;i < m-1;i++)
	  for (j = i+1;j < m;j++)
	    if (a[i] > a[j]) //升序排序 
	    {
	    	temp = a[i];
	    	a[i] = a[j];
	    	a[j] = temp;
		}
}
/*
*冒泡算法多用于没有排序的数列,对其进行有序排列
*/
<2>插入算法:
#include <iostream>
#define N 10
using namespace std;
void fun(int a[],int m);

int main(void)
{
    int i;
    int a[N] = {1,2,3,5,6,7,8,9,10};
    fun(a,N);
    for (i = 0;i < N;i++)
        cout << a[i] << ' ';
    return 0;
}

void fun(int a[],int m)
{
    int i,j,n;
    n = 4; //要插入的数
    for (i = 0;i < m;i++)
        if (a[i] > n)
        break;
    for (j = m-2;j >= i;j--) // 插入适当的位置,使得数列仍按升序排列
        a[j+1] = a[j];
    a[i] = n;
}
/*
*插入算法多用于已经按升序或降序排列的有序数列,插入一个数后仍按升序或降序排列
*/
<3>简单选择排序法:
#include <iostream>
#define N 10
using namespace std;

void fun (int a[],int m);

int main (void)
{
    int i;
    int num[N] = {7,9,2,5,0,3,1,4,6,8};
    fun(num,N);
    for (i = 0;i < N;i++)
        cout << num[i] << ' ';
    cout << endl;
    return 0;
}

void fun(int a[],int m)
{
    int i,j,temp;
    int flag;
    flag = temp = 0;
    for (i = 0;i < m-1;i++)
    {
        temp = a[i];
        flag = i;
        for (j = i+1;j < m;j++)
            if (a[j] < temp)
            {temp = a[j];flag = j;}
        if (flag == i)
            continue;
        a[flag] = a[i];
        a[i] = temp;
    }
}
/*选择排序法同样多应用于没有排序的序列,对其进行有序排列,但较之冒泡排序,程序执行效率更高*/


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值