简单排序算法

来源:互联网 发布:mac怎么打拼音 编辑:程序博客网 时间:2024/06/03 21:08

简单排序算法

<1>冒泡算法:
#include <iostream>#define N 5using 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 10using 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 10using 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
原创粉丝点击