排序

作者: Cipolee | 来源:发表于2019-03-02 22:02 被阅读0次

原创

堆排序:

使用visit数组从本质出发获取大顶堆排序。


#include<iostream>

#include<cmath>

#include<cstdio>

using namespace std;

int visit[100]={0};

void adjust_sort(int a[],int n)

{

  int i;

  for(i=n/2-1;i>=0;i--)

  {

    int left=2*i+1;

    if(!visit[left]&&!visit[left+1])

    {

        if(a[i]<a[left]&&a[left]>a[left+1])

        swap(a[i],a[left]);

        if(a[i]<a[left+1]&&a[left]<a[left+1])

        swap(a[i],a[left+1]);

    }

    if(!visit[left]&&visit[left+1])

    {

        if(a[i]<a[left])

        swap(a[i],a[left]);

    }

  }

}

void head_sort(int a[],int n)

{

    for(int i=n-1;i>=0;i--)

    {

    adjust_sort(a,n);

    swap(a[0],a[i]);

    visit[i]=1;

    }

}

int main()

{

    int a[100];

    int i=0;

    while(scanf("%d",&a[i])!=EOF)

    {

        i++;

    }

    int n=i;

    head_sort(a,n);

    for(i=n-1;i>=0;i--)

    printf("%d ",a[i]);

}

相关文章

  • 【恋上数据结构与算法二】(一)排序(Sorting)

    排序方法 冒泡排序 选择排序 堆排序 插入排序 归并排序 快速排序 希尔排序 计数排序 基数排序 桶排序 初识排序...

  • 排序-冒泡排序

    排序系列传递门 排序—选择排序排序—快速排序排序—插入排序排序-希尔排序(待完善)排序—归并排序(待完善)排序—基...

  • 排序

    冒泡排序: 冒泡排序 选择排序: 插入排序: 希尔排序: 归并排序: 快速排序: 堆排序: 计数排序: 桶排序: ...

  • Java | 10种排序算法

    冒泡排序 选择排序 插入排序 希尔排序 计数排序 基数排序 堆排序 归并排序 快速排序 桶排序

  • 常见的排序

    冒泡排序: 选择排序: 插入排序: 快速排序: 希尔排序: 归并排序: 堆排序: 计数排序: 桶排序: 基数排序:

  • 002--20200409刷题

    冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 计数排序 桶排序 基数排序

  • 排序

    排序 符号:Θ 插入排序 选择排序 堆排序 归并排序 冒泡排序 快速排序 桶排序 基数排序 计数排序 插入排序 插...

  • 排序 -- 选择/插入

    聊聊排序吧 冒泡排序 选择排序 插入排序 快速排序 归并排序 计数排序 桶排序 堆排序 本篇 选择排序与插入排序 ...

  • 前端基础整理 | 算法基础

    排序算法 冒泡排序 选择排序 插入排序 希尔排序 归并排序 堆排序 快速排序

  • Java 常见的 8 种排序算法(内排序)

    排序分类 内部排序 插入排序:直接插入排序、希尔排序 交换排序:冒泡排序、快速排序 选择排序:直接选择排序、堆排序...

网友评论

      本文标题:排序

      本文链接:https://www.haomeiwen.com/subject/kytuuqtx.html