注册 登录
编程论坛 C++教室

插入排列问题。。。

谢伟 发布于 2010-05-12 11:56, 631 次点击
怎样在数组中插入一个数,按降序排列。。。。谢谢
3 回复
#2
lintaoyn2010-05-12 12:58
使用STL中容器中的set。
#include<set>
例:set<int,greater<int>> coll;
#3
feixinz2010-05-15 01:56
#include <iostream>
#include <string>
using namespace std;
#include<stdlib.h>

int array[20] = {0};
/*
    初始化一个数组,给每一个原数赋1000内的整数
*/
void initArray(int* a, int size)
{
    srand(0);
    for(int i = 0; i < size; i++)
        a[i] = rand()%1000;//为了查看方便取1000以内的值
}

/*
    打印长度为size的整形数组
*/
void printArray(int *a, int size)
{
    for(int i = 0; i < size; i++)
        if(i%10 == 9)
            cout << a[i] <<  endl;
        else
            cout << a[i] << ',';
    cout <<  endl;
}

void swap(int &a, int& b)
{
    int  tmp = a;
    a = b;
    b = tmp;
}
/*
    插入排序的算法   
*/
void insertSort(int *a, int size)
{
    if(size < 2)
        return;
    int i = 0;
    int j = 0;
    int max = 0;
    for(i = 1; i < size; i++)
    {
        max = a[i];
        for(j = i; j > 0; j--)
        {
            if(max > a[j-1])
            {
                a[j] = a[j-1];
                if(j == 1)
                    a[0] = max;
            }
            else
            {
                a[j] = max;
                break;
            }
        }
    }
}
int main()
{
    initArray(array, sizeof(array)/sizeof(int));
    printArray(array, sizeof(array)/sizeof(int));
    insertSort(array, sizeof(array)/sizeof(int));
    printArray(array, sizeof(array)/sizeof(int));
    return 0;
}
#4
谢伟2010-10-28 21:06
谢谢,辛苦你啦!!
1