文档章节

冒泡和快速,希尔排序

Bovinitwo
 Bovinitwo
发布于 2016/03/30 16:11
字数 234
阅读 39
收藏 2

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

#include<stdio.h>
using namespace std;
//快速排序
void quick_sort(int s[],int m,int r)
{
    if (m < r)
    {
        int temp;
        int i = m, j = r, x = s[m];
        while (i < j)
        {
            while(i < j && s[j] >= x) // 从右向左找第一个小于x的数
                --j;
            while(i < j && s[i] <=x) // 从左向右找第一个大于等于x的数
                i++;
            if(i<j)
            {
                temp=s[i];
                s[i]=s[j];
                s[j]=temp;
            }
        }
        temp=s[i];
        s[i]=s[m];
        s[m]=temp;
        quick_sort(s, m, j-1); // 递归调用
        quick_sort(s, j + 1, r);
    }
}
//冒泡排序
void pop_sort(int s[],int m)
{
    int temp;
    for(int i=0;i<m-1;++i)
    {
        for(int j=0;j<m-1-i;++j)
        {
            if(s[j]>s[j+1])
            {
                temp=s[j];
                s[j]=s[j+1];
                s[j+1]=temp;
            }
        }
    }
}
//希尔排序
void ShellSort(int s[], int len)
{
    int d,temp;
    while(d>1)
    {
        d=(d+1)/2;
        for(int i=0;i<len-d;++i)
        {
            if(s[i]>s[i+d])
            {
                temp=s[i];
                s[i]=s[i+d];
                s[i+d]=temp;
            }
        }
    }
}

int main()
{
 int s[10]={12,3,2,231,4,5,91,8,7,6};
 quick_sort(s,0,9);
 for(char i=0;i<10;++i)
 {
     printf("\n%d",s[i]);
 }
}

© 著作权归作者所有

Bovinitwo
粉丝 1
博文 24
码字总数 12120
作品 0
海淀
程序员
私信 提问
OC-排序算法总结(冒泡、快速、插入、选择、希尔)

一、时间复杂度和空间复杂度 要学习算法首先要弄明白两个概念 1、时间复杂度:即一个算法执行所耗费的时间,理论上不可计算,只能通过上机测试,但可以根据它的变化规律预估出一个时间,记为...

乔兰伊雪
2018/05/24
0
0
算法之排序(Java版)-持续更新补充

开始复习排序,主要是按照《轻松学算法》这本书的目录来学习,同时搜索网上的博客文章来辅助,参考的来源均在文章底部标明。同样,本文持续更新,代码书上只给了基础排序代码(我称之为原始排...

kissjz
2018/08/03
0
0
JavaScript:十大排序的算法思路和代码实现

本文内容包括:(双向)冒泡排序、选择排序、插入排序、快速排序(填坑和交换)、归并排序、桶排序、基数排序、计数排序(优化)、堆排序、希尔排序。大家可以在这里测试代码。更多 的 解法也可以在...

DangoSky
05/27
0
0
java排序之快速排序、归并排序、基数排序

前两篇说了Java排序中的冒泡、选择、插入、希尔等排序算法,今天就探讨一下剩下的三种常用排序。 快速排序: 当要求时间最快时,就可以用快速排序算法。 选择第一个数为p,小于p的数放在左边...

野小疯
2018/06/05
56
0
面试 13:基于排序算法的总结

浑浑噩噩,我们前面已经讲解了冒泡、插入、选择、归并、快排 5 种排序算法,其他的由于时间关系,我们就不一一例举了。 说到排序,不得不想到我们 JDK 中自带的 和 方法。这两个方法基本算是...

nanchen2251
2018/07/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Redis面试题详解:哨兵+复制+事务+集群+持久化等

Redis主要有哪些功能? 1.哨兵(Sentinel)和复制(Replication) Redis服务器毫无征兆的罢工是个麻烦事,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制。 Sentinel...

Java阿七
2分钟前
0
0
响应国家号召 1+X 证书 Web 前端开发考试模拟题

官方QQ群:736413913 1+x证书Web前端开发初级理论考试样题2019 http://blog.zh66.club/index.php/archives/149/ 1+x证书Web前端开发初级实操考试样题2019 http://blog.zh66.club/index.php/...

张帅个人博客
7分钟前
2
0
如何检查一个字符串在Objective-C中是否包含另一个字符串?

如何检查字符串( NSString )是否包含另一个较小的字符串? 我希望有这样的东西: NSString *string = @"hello bla bla";NSLog(@"%d",[string containsSubstring:@"hello"]); 但是我能找到......

javail
24分钟前
2
0
.NET Core开发的iNeuOS工业互联网平台,发布 iNeuDA 数据分析展示组件,快捷开发图形报表和数据大屏

目 录 1. 概述... 2 2. 演示信息... 2 3. 简单介绍... 3 4. 产品特点... 4 5. 价值体现... 5 1. 概述 经过一段时间的努力,iNeuDA产品组件已经开发和测试完成,现在正式上线。现在iNeuOS工业...

wxzz
26分钟前
2
0
在每个GROUP BY组中选择第一行?

顾名思义,我想选择以GROUP BY分组的每组行的第一行。 具体来说,如果我有一个如下的purchases表: SELECT * FROM purchases; 我的输出: id | customer | total---+----------+------ 1...

技术盛宴
39分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部