C++ Exercises(十五)--排序算法的简单实现_出队struct Node 
C++ Exercises(十五)--排序算法的简单实现_出队_02C++ Exercises(十五)--排序算法的简单实现_头结点_03C++ Exercises(十五)--排序算法的简单实现_ios_04{//队列结点
C++ Exercises(十五)--排序算法的简单实现_结点_05    int data;
C++ Exercises(十五)--排序算法的简单实现_结点_05    struct Node* pNext;
C++ Exercises(十五)--排序算法的简单实现_结点_07};
C++ Exercises(十五)--排序算法的简单实现_出队class CQueue
C++ Exercises(十五)--排序算法的简单实现_出队_02C++ Exercises(十五)--排序算法的简单实现_头结点_03C++ Exercises(十五)--排序算法的简单实现_ios_04{//队列类(带头结点)
C++ Exercises(十五)--排序算法的简单实现_结点_05public:
C++ Exercises(十五)--排序算法的简单实现_结点_05    CQueue(void);
C++ Exercises(十五)--排序算法的简单实现_结点_05    ~CQueue(void);
C++ Exercises(十五)--排序算法的简单实现_结点_05    bool isEmpty()const;//是否为空
C++ Exercises(十五)--排序算法的简单实现_结点_05    void EnQueue(int num);//入队列
C++ Exercises(十五)--排序算法的简单实现_结点_05    int DeQueue();//出队列
C++ Exercises(十五)--排序算法的简单实现_结点_05    int Front()const;//对头元素
C++ Exercises(十五)--排序算法的简单实现_结点_05    void clearQueue();//清空队列
C++ Exercises(十五)--排序算法的简单实现_结点_05    int Size()const;
C++ Exercises(十五)--排序算法的简单实现_结点_05    void printQueue()const;
C++ Exercises(十五)--排序算法的简单实现_结点_05private:
C++ Exercises(十五)--排序算法的简单实现_结点_05    Node *front;//头结点
C++ Exercises(十五)--排序算法的简单实现_结点_05    Node *end;//尾结点
C++ Exercises(十五)--排序算法的简单实现_结点_05    int size;//队列大小
C++ Exercises(十五)--排序算法的简单实现_结点_05        
C++ Exercises(十五)--排序算法的简单实现_结点_07};
C++ Exercises(十五)--排序算法的简单实现_出队#include "Queue.h"
C++ Exercises(十五)--排序算法的简单实现_出队#include <cstdlib>
C++ Exercises(十五)--排序算法的简单实现_出队#include <assert.h>
C++ Exercises(十五)--排序算法的简单实现_出队#include <iostream>
C++ Exercises(十五)--排序算法的简单实现_出队using namespace std;
C++ Exercises(十五)--排序算法的简单实现_出队
C++ Exercises(十五)--排序算法的简单实现_出队CQueue::CQueue(void)
C++ Exercises(十五)--排序算法的简单实现_出队_02C++ Exercises(十五)--排序算法的简单实现_头结点_03C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05    this->front = new Node;
C++ Exercises(十五)--排序算法的简单实现_结点_05    this->front->pNext = NULL;
C++ Exercises(十五)--排序算法的简单实现_结点_05    this->end = this->front;
C++ Exercises(十五)--排序算法的简单实现_结点_05    this->size = 0;
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队void CQueue::EnQueue(int num)
C++ Exercises(十五)--排序算法的简单实现_出队_02C++ Exercises(十五)--排序算法的简单实现_头结点_03C++ Exercises(十五)--排序算法的简单实现_ios_04{//入队列
C++ Exercises(十五)--排序算法的简单实现_结点_05    Node* pNum = new Node;
C++ Exercises(十五)--排序算法的简单实现_结点_05    pNum->data = num;
C++ Exercises(十五)--排序算法的简单实现_结点_05    pNum->pNext = NULL;
C++ Exercises(十五)--排序算法的简单实现_结点_05    this->end->pNext = pNum;
C++ Exercises(十五)--排序算法的简单实现_结点_05    this->end = pNum;
C++ Exercises(十五)--排序算法的简单实现_结点_05    this->size++;
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队int CQueue::DeQueue()
C++ Exercises(十五)--排序算法的简单实现_出队_02C++ Exercises(十五)--排序算法的简单实现_头结点_03C++ Exercises(十五)--排序算法的简单实现_ios_04{//出队列,返回对头元素值
C++ Exercises(十五)--排序算法的简单实现_结点_05    assert(this->front!=this->end);//队列不空
C++ Exercises(十五)--排序算法的简单实现_结点_05    int result;
C++ Exercises(十五)--排序算法的简单实现_结点_05    Node* pNum = this->front->pNext;
C++ Exercises(十五)--排序算法的简单实现_结点_05    result = pNum->data;
C++ Exercises(十五)--排序算法的简单实现_结点_05    if (pNum==this->end)
C++ Exercises(十五)--排序算法的简单实现_#include_63C++ Exercises(十五)--排序算法的简单实现_#include_64    C++ Exercises(十五)--排序算法的简单实现_ios_04{//队列中只有一个元素了
C++ Exercises(十五)--排序算法的简单实现_结点_05        this->front->pNext = NULL;
C++ Exercises(十五)--排序算法的简单实现_结点_05        this->end = this->front;
C++ Exercises(十五)--排序算法的简单实现_头结点_68    }
C++ Exercises(十五)--排序算法的简单实现_结点_05    else
C++ Exercises(十五)--排序算法的简单实现_#include_63C++ Exercises(十五)--排序算法的简单实现_#include_64    C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05        this->front->pNext = pNum->pNext;
C++ Exercises(十五)--排序算法的简单实现_头结点_68    }
C++ Exercises(十五)--排序算法的简单实现_结点_05    delete pNum;
C++ Exercises(十五)--排序算法的简单实现_结点_05    this->size--;
C++ Exercises(十五)--排序算法的简单实现_结点_05    return result;
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队void CQueue::clearQueue()
C++ Exercises(十五)--排序算法的简单实现_出队_02C++ Exercises(十五)--排序算法的简单实现_头结点_03C++ Exercises(十五)--排序算法的简单实现_ios_04{//清空队列
C++ Exercises(十五)--排序算法的简单实现_结点_05    if (!this->isEmpty())
C++ Exercises(十五)--排序算法的简单实现_#include_63C++ Exercises(十五)--排序算法的简单实现_#include_64    C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05        Node* pNum = this->front->pNext;//指向第一个结点
C++ Exercises(十五)--排序算法的简单实现_结点_05        Node* pre = this->front;
C++ Exercises(十五)--排序算法的简单实现_结点_05        while (pNum!=NULL)
C++ Exercises(十五)--排序算法的简单实现_#include_63C++ Exercises(十五)--排序算法的简单实现_#include_64        C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05            pre = pNum;
C++ Exercises(十五)--排序算法的简单实现_结点_05            delete pre;
C++ Exercises(十五)--排序算法的简单实现_结点_05            pNum = pNum->pNext;
C++ Exercises(十五)--排序算法的简单实现_头结点_68        }
C++ Exercises(十五)--排序算法的简单实现_结点_05        this->front->pNext = NULL;
C++ Exercises(十五)--排序算法的简单实现_结点_05        this->end = this->front;
C++ Exercises(十五)--排序算法的简单实现_结点_05        this->size = 0;
C++ Exercises(十五)--排序算法的简单实现_头结点_68    }
C++ Exercises(十五)--排序算法的简单实现_结点_05
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队void CQueue::printQueue()const
C++ Exercises(十五)--排序算法的简单实现_出队_02C++ Exercises(十五)--排序算法的简单实现_头结点_03C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05    if (!this->isEmpty())
C++ Exercises(十五)--排序算法的简单实现_#include_63C++ Exercises(十五)--排序算法的简单实现_#include_64    C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05        Node* pNum = this->front->pNext;
C++ Exercises(十五)--排序算法的简单实现_结点_05        while (pNum!=NULL)
C++ Exercises(十五)--排序算法的简单实现_#include_63C++ Exercises(十五)--排序算法的简单实现_#include_64        C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05            cout<<pNum->data<<" ";
C++ Exercises(十五)--排序算法的简单实现_结点_05            pNum = pNum->pNext;
C++ Exercises(十五)--排序算法的简单实现_头结点_68        }
C++ Exercises(十五)--排序算法的简单实现_结点_05        cout<<endl;
C++ Exercises(十五)--排序算法的简单实现_头结点_68    }
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队int CQueue::Size()const
C++ Exercises(十五)--排序算法的简单实现_出队_02C++ Exercises(十五)--排序算法的简单实现_头结点_03C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05    return this->size;
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队bool CQueue::isEmpty()const
C++ Exercises(十五)--排序算法的简单实现_出队_02C++ Exercises(十五)--排序算法的简单实现_头结点_03C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05    return this->front==this->end;
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队CQueue::~CQueue(void)
C++ Exercises(十五)--排序算法的简单实现_出队_02C++ Exercises(十五)--排序算法的简单实现_头结点_03C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05this->clearQueue();
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队
C++ Exercises(十五)--排序算法的简单实现_出队

 

C++ Exercises(十五)--排序算法的简单实现_出队#include "Queue.h"
C++ Exercises(十五)--排序算法的简单实现_出队#include <iostream>
C++ Exercises(十五)--排序算法的简单实现_出队using namespace std;
C++ Exercises(十五)--排序算法的简单实现_出队
C++ Exercises(十五)--排序算法的简单实现_出队void printArray(int data[],int n)
C++ Exercises(十五)--排序算法的简单实现_出队_147C++ Exercises(十五)--排序算法的简单实现_出队_148C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05    int i;
C++ Exercises(十五)--排序算法的简单实现_结点_05    for (i=0;i<n;++i)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153    C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05        cout<<data[i]<<" ";
C++ Exercises(十五)--排序算法的简单实现_头结点_68    }
C++ Exercises(十五)--排序算法的简单实现_结点_05    cout<<endl;
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队int getRadix(int num,int count)
C++ Exercises(十五)--排序算法的简单实现_出队_147C++ Exercises(十五)--排序算法的简单实现_出队_148C++ Exercises(十五)--排序算法的简单实现_ios_04{//返回num在趟数为count时的数值,0趟最后一位,趟倒数第一位,依次类推
C++ Exercises(十五)--排序算法的简单实现_结点_05    int temp = num,result,nCount=0;
C++ Exercises(十五)--排序算法的简单实现_结点_05    while(nCount<=count)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153    C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05        result = temp%10;
C++ Exercises(十五)--排序算法的简单实现_结点_05        temp = temp/10;
C++ Exercises(十五)--排序算法的简单实现_结点_05        nCount++;
C++ Exercises(十五)--排序算法的简单实现_头结点_68    }
C++ Exercises(十五)--排序算法的简单实现_结点_05    return result;
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队void RadixSort(int data[],int n,const int count)
C++ Exercises(十五)--排序算法的简单实现_出队_147C++ Exercises(十五)--排序算法的简单实现_出队_148C++ Exercises(十五)--排序算法的简单实现_ios_04{//基数排序,count为趟数
C++ Exercises(十五)--排序算法的简单实现_结点_05    CQueue *queue = new CQueue[10];//下标从到的个队列
C++ Exercises(十五)--排序算法的简单实现_结点_05    int i,j,num,m;
C++ Exercises(十五)--排序算法的简单实现_结点_05    //
C++ Exercises(十五)--排序算法的简单实现_结点_05    for (i=0;i<count;++i)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153    C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05        //分配
C++ Exercises(十五)--排序算法的简单实现_结点_05        for (j=0;j<n;++j)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153        C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05            num = getRadix(data[j],i);//当前趟数下的基数
C++ Exercises(十五)--排序算法的简单实现_结点_05            queue[num].EnQueue(data[j]);
C++ Exercises(十五)--排序算法的简单实现_头结点_68        }
C++ Exercises(十五)--排序算法的简单实现_结点_05        for (j=0;j<10;++j)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153        C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05            cout<<"队列"<<j<<":"<<endl;
C++ Exercises(十五)--排序算法的简单实现_结点_05            queue[j].printQueue();
C++ Exercises(十五)--排序算法的简单实现_头结点_68        }
C++ Exercises(十五)--排序算法的简单实现_结点_05        
C++ Exercises(十五)--排序算法的简单实现_结点_05        //收集
C++ Exercises(十五)--排序算法的简单实现_结点_05        m = 0;
C++ Exercises(十五)--排序算法的简单实现_结点_05        for (j=0;j<10;++j)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153        C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05            while (!queue[j].isEmpty())
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153            C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05                data[m] = queue[j].DeQueue();
C++ Exercises(十五)--排序算法的简单实现_结点_05                m++;
C++ Exercises(十五)--排序算法的简单实现_头结点_68            }
C++ Exercises(十五)--排序算法的简单实现_结点_05
C++ Exercises(十五)--排序算法的简单实现_头结点_68        }
C++ Exercises(十五)--排序算法的简单实现_结点_05        cout<<"收集趟数: "<<i<<": "<<endl;
C++ Exercises(十五)--排序算法的简单实现_结点_05        printArray(data,n);
C++ Exercises(十五)--排序算法的简单实现_头结点_68    }
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队
C++ Exercises(十五)--排序算法的简单实现_出队void swap(int& a,int& b)
C++ Exercises(十五)--排序算法的简单实现_出队_147C++ Exercises(十五)--排序算法的简单实现_出队_148C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05    int temp = a;
C++ Exercises(十五)--排序算法的简单实现_结点_05    a =  b;
C++ Exercises(十五)--排序算法的简单实现_结点_05    b = temp;
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队int minElement(int data[],int begin,int end)
C++ Exercises(十五)--排序算法的简单实现_出队_147C++ Exercises(十五)--排序算法的简单实现_出队_148C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05    int result=begin,maxNum = data[begin],i;
C++ Exercises(十五)--排序算法的简单实现_结点_05    for (i=begin+1;i<end;++i)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153    C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05        if (data[i]<maxNum)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153        C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05            maxNum = data[i];
C++ Exercises(十五)--排序算法的简单实现_结点_05            result = i;
C++ Exercises(十五)--排序算法的简单实现_头结点_68        }
C++ Exercises(十五)--排序算法的简单实现_头结点_68    }
C++ Exercises(十五)--排序算法的简单实现_结点_05    return result;
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队void SelectionSort(int data[],int n)
C++ Exercises(十五)--排序算法的简单实现_出队_147C++ Exercises(十五)--排序算法的简单实现_出队_148C++ Exercises(十五)--排序算法的简单实现_ios_04{//选择排序
C++ Exercises(十五)--排序算法的简单实现_结点_05    int i,num;
C++ Exercises(十五)--排序算法的简单实现_结点_05    //共需要进行n-1轮
C++ Exercises(十五)--排序算法的简单实现_结点_05    for (i=0;i<n-1;++i)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153    C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05        num = minElement(data,i,n);
C++ Exercises(十五)--排序算法的简单实现_结点_05        swap(data[i],data[num]);
C++ Exercises(十五)--排序算法的简单实现_头结点_68    }
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队void AdjustHeap(int data[],int begin,int end)
C++ Exercises(十五)--排序算法的简单实现_出队_147C++ Exercises(十五)--排序算法的简单实现_出队_148C++ Exercises(十五)--排序算法的简单实现_ios_04{//堆调整data[beginend-1]
C++ Exercises(十五)--排序算法的简单实现_结点_05    int tmp = data[begin];
C++ Exercises(十五)--排序算法的简单实现_结点_05    int c = begin*2,pos = begin;
C++ Exercises(十五)--排序算法的简单实现_结点_05    while(c<=end)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153    C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05        if (c<end&&data[c+1]>data[c])
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153        C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05            c++;
C++ Exercises(十五)--排序算法的简单实现_头结点_68        }
C++ Exercises(十五)--排序算法的简单实现_结点_05        if (data[c]>tmp)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153        C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05            data[pos] = data[c];
C++ Exercises(十五)--排序算法的简单实现_结点_05            pos = c;
C++ Exercises(十五)--排序算法的简单实现_结点_05            c = c*2;
C++ Exercises(十五)--排序算法的简单实现_结点_05            
C++ Exercises(十五)--排序算法的简单实现_头结点_68        }
C++ Exercises(十五)--排序算法的简单实现_结点_05        else
C++ Exercises(十五)--排序算法的简单实现_结点_05            break;
C++ Exercises(十五)--排序算法的简单实现_头结点_68    }
C++ Exercises(十五)--排序算法的简单实现_结点_05    data[pos] = tmp;
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队void BuildHeap(int data[],int n)
C++ Exercises(十五)--排序算法的简单实现_出队_147C++ Exercises(十五)--排序算法的简单实现_出队_148C++ Exercises(十五)--排序算法的简单实现_ios_04{//初始建小顶堆
C++ Exercises(十五)--排序算法的简单实现_结点_05    int i;
C++ Exercises(十五)--排序算法的简单实现_结点_05    for (i=n/2;i>0;--i)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153    C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05        AdjustHeap(data,i,n);
C++ Exercises(十五)--排序算法的简单实现_头结点_68    }
C++ Exercises(十五)--排序算法的简单实现_结点_05
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队
C++ Exercises(十五)--排序算法的简单实现_出队void HeapSort(int data[],int n)
C++ Exercises(十五)--排序算法的简单实现_出队_147C++ Exercises(十五)--排序算法的简单实现_出队_148C++ Exercises(十五)--排序算法的简单实现_ios_04{//堆排序
C++ Exercises(十五)--排序算法的简单实现_结点_05    int* tdata = new int[n+1];
C++ Exercises(十五)--排序算法的简单实现_结点_05    int i;
C++ Exercises(十五)--排序算法的简单实现_结点_05    tdata[0] = -1;//第一个元素舍弃
C++ Exercises(十五)--排序算法的简单实现_结点_05    for (i=0;i<n;++i)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153    C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05        tdata[i+1] = data[i];
C++ Exercises(十五)--排序算法的简单实现_头结点_68    }
C++ Exercises(十五)--排序算法的简单实现_结点_05    BuildHeap(tdata,n); //将tdata[1n]建成初始堆
C++ Exercises(十五)--排序算法的简单实现_结点_05    for(i=n-1;i>=1;--i)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153    C++ Exercises(十五)--排序算法的简单实现_ios_04{ //对当前无序区进行堆排序,共做n-1趟。
C++ Exercises(十五)--排序算法的简单实现_结点_05        swap(tdata[1],tdata[i+1]);
C++ Exercises(十五)--排序算法的简单实现_结点_05        AdjustHeap(tdata,1,i); //重新调整为堆
C++ Exercises(十五)--排序算法的简单实现_头结点_68    }
C++ Exercises(十五)--排序算法的简单实现_结点_05    for (i=0;i<n;++i)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153    C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05        data[i] = tdata[i+1];
C++ Exercises(十五)--排序算法的简单实现_头结点_68    }
C++ Exercises(十五)--排序算法的简单实现_结点_05    delete[] tdata;
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队
C++ Exercises(十五)--排序算法的简单实现_出队void BubbleSort(int data[],int n)
C++ Exercises(十五)--排序算法的简单实现_出队_147C++ Exercises(十五)--排序算法的简单实现_出队_148C++ Exercises(十五)--排序算法的简单实现_ios_04{//冒泡排序
C++ Exercises(十五)--排序算法的简单实现_结点_05    bool isChange = true;
C++ Exercises(十五)--排序算法的简单实现_结点_05    int i,k;
C++ Exercises(十五)--排序算法的简单实现_结点_05    for (k=n-1;k>=1&&isChange==true;--k)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153    C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05        isChange = false;
C++ Exercises(十五)--排序算法的简单实现_结点_05        for (i=0;i<k;++i)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153        C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05            if (data[i]>data[i+1])
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153            C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05                swap(data[i],data[i+1]);
C++ Exercises(十五)--排序算法的简单实现_结点_05                isChange = true;
C++ Exercises(十五)--排序算法的简单实现_头结点_68            }
C++ Exercises(十五)--排序算法的简单实现_头结点_68        }
C++ Exercises(十五)--排序算法的简单实现_头结点_68    }
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队
C++ Exercises(十五)--排序算法的简单实现_出队void InsertSort(int data[],int n)
C++ Exercises(十五)--排序算法的简单实现_出队_147C++ Exercises(十五)--排序算法的简单实现_出队_148C++ Exercises(十五)--排序算法的简单实现_ios_04{//插入排序
C++ Exercises(十五)--排序算法的简单实现_结点_05    int i,j,pos,num;
C++ Exercises(十五)--排序算法的简单实现_结点_05    for (i=1;i<n;++i)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153    C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05        num = data[i];
C++ Exercises(十五)--排序算法的简单实现_结点_05        for (j=0;j<=i-1&&data[i]>data[j];++j);
C++ Exercises(十五)--排序算法的简单实现_结点_05        pos = j;//插入点
C++ Exercises(十五)--排序算法的简单实现_结点_05        for (j=i-1;j>=pos;--j)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153        C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05            data[j+1] = data[j];
C++ Exercises(十五)--排序算法的简单实现_头结点_68        }
C++ Exercises(十五)--排序算法的简单实现_结点_05        data[pos] = num;
C++ Exercises(十五)--排序算法的简单实现_头结点_68    }
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队void QuickSort(int *data,int low,int high)
C++ Exercises(十五)--排序算法的简单实现_出队_147C++ Exercises(十五)--排序算法的简单实现_出队_148C++ Exercises(十五)--排序算法的简单实现_ios_04{//快速排序
C++ Exercises(十五)--排序算法的简单实现_结点_05    int pivot;
C++ Exercises(十五)--排序算法的简单实现_结点_05    int scanUp,scanDown;
C++ Exercises(十五)--排序算法的简单实现_结点_05    int mid;
C++ Exercises(十五)--排序算法的简单实现_结点_05    if(high-low<=0)
C++ Exercises(十五)--排序算法的简单实现_结点_05        return;
C++ Exercises(十五)--排序算法的简单实现_结点_05    else 
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153    C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05        if(high-low==1)
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153        C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05            if(data[high]<data[low])
C++ Exercises(十五)--排序算法的简单实现_结点_05                swap(data[low],data[high]);
C++ Exercises(十五)--排序算法的简单实现_结点_05            return;
C++ Exercises(十五)--排序算法的简单实现_头结点_68        }
C++ Exercises(十五)--排序算法的简单实现_结点_05        mid = (low+high)/2;
C++ Exercises(十五)--排序算法的简单实现_结点_05        pivot = data[mid];
C++ Exercises(十五)--排序算法的简单实现_结点_05        swap(data[low],data[mid]);
C++ Exercises(十五)--排序算法的简单实现_结点_05        scanUp = low+1;
C++ Exercises(十五)--排序算法的简单实现_结点_05        scanDown = high;
C++ Exercises(十五)--排序算法的简单实现_结点_05        do
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153        C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_结点_05            while(scanUp<=scanDown&&data[scanUp]<=pivot)
C++ Exercises(十五)--排序算法的简单实现_结点_05                scanUp++;
C++ Exercises(十五)--排序算法的简单实现_结点_05            while(data[scanDown]>pivot)
C++ Exercises(十五)--排序算法的简单实现_结点_05                scanDown--;
C++ Exercises(十五)--排序算法的简单实现_结点_05            if(scanUp<scanDown)
C++ Exercises(十五)--排序算法的简单实现_结点_05                swap(data[scanUp],data[scanDown]);
C++ Exercises(十五)--排序算法的简单实现_头结点_68        }while(scanUp<scanDown);
C++ Exercises(十五)--排序算法的简单实现_结点_05        data[low] = data[scanDown];
C++ Exercises(十五)--排序算法的简单实现_结点_05        data[scanDown] = pivot;
C++ Exercises(十五)--排序算法的简单实现_结点_05        if(low<scanDown-1)
C++ Exercises(十五)--排序算法的简单实现_结点_05            QuickSort(data,low,scanDown-1);
C++ Exercises(十五)--排序算法的简单实现_结点_05        if(scanDown+1<high)
C++ Exercises(十五)--排序算法的简单实现_结点_05            QuickSort(data,scanDown+1,high);
C++ Exercises(十五)--排序算法的简单实现_头结点_68    }
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队int main()
C++ Exercises(十五)--排序算法的简单实现_出队_147C++ Exercises(十五)--排序算法的简单实现_出队_148C++ Exercises(十五)--排序算法的简单实现_ios_04{
C++ Exercises(十五)--排序算法的简单实现_出队_152C++ Exercises(十五)--排序算法的简单实现_出队_153    int a[] = C++ Exercises(十五)--排序算法的简单实现_ios_04{10,32,55,41,39,12,11,15,20,19,21,22,29,25};
C++ Exercises(十五)--排序算法的简单实现_结点_05    int len = sizeof(a)/sizeof(int);
C++ Exercises(十五)--排序算法的简单实现_结点_05    cout<<"排序前:"<<endl;
C++ Exercises(十五)--排序算法的简单实现_结点_05    printArray(a,len);
C++ Exercises(十五)--排序算法的简单实现_结点_05    //RadixSort(a,len,2);
C++ Exercises(十五)--排序算法的简单实现_结点_05    //SelectionSort(a,len);
C++ Exercises(十五)--排序算法的简单实现_结点_05    //HeapSort(a,len);
C++ Exercises(十五)--排序算法的简单实现_结点_05    //BubbleSort(a,len);
C++ Exercises(十五)--排序算法的简单实现_结点_05    //InsertSort(a,len);
C++ Exercises(十五)--排序算法的简单实现_结点_05    QuickSort(a,0,len);
C++ Exercises(十五)--排序算法的简单实现_结点_05    cout<<"排序后:"<<endl;
C++ Exercises(十五)--排序算法的简单实现_结点_05    printArray(a,len);
C++ Exercises(十五)--排序算法的简单实现_结点_05    system("pause");
C++ Exercises(十五)--排序算法的简单实现_结点_05    return 0;
C++ Exercises(十五)--排序算法的简单实现_结点_07}
C++ Exercises(十五)--排序算法的简单实现_出队
C++ Exercises(十五)--排序算法的简单实现_出队