C语言-排序和查找
一 冒泡排序:算法特点:两层循环外层控制排序的趟数,内存控制相邻元素两两比较的次数。n个数共需n-1趟,(i=1;i<n;i++)趟数=n-1-1+1,其中第j趟需要相邻元素两两比较的次数为n-j。可以按照升序也可以安排降序排序。其实还可以优化。
oid Bubblesort(int *p,int n)
{
int i,j,temp;
for(i = 1;i < n;i++)
{
for(j = 0;i < (n - j);j++)
{
if(p[j]< p[j+1])
{
p[j]= p[j] + p[j+1];
p[j+1]= p[j] - p[j+1];
p[j]= p[j] - p[j+1];
}
}
}
}
二 快速排序:有左起点和右终点,还有一个标准点(任选),先从右端开始寻找比标准小的值,再从左端选大于标准的值,然后将其交换,逐个进行这样的操作,知道前后两个指针相等此时记下该位置点并与标准点进行值交换,最终以标准为界,左端是小于标准点的一个序列,右边是大于标准值得序列,但这两个序列都是无序的。
然后分别对左边序列和右边序列进行函数递归调用重复上述过程。
void quicksort(int *p,int low,int high)
{
int slect_std;
int i,j;
slect_std = p[low];
i = low;
j = high;
while(i <= j)
{
while(p[slect_std] <= p[j] && (i<j))
j--;
while(p[slect_std] >= p[i] && (i<j))
i--;
if(i < j)
p[i] = p[i] + p[j];
p[j] = p[i] - p[j];
p[i] = p[i] - p[j];
}
p[i] = p[lown];
slect_std = p[i];
quicksort(p,low,i-1);
quicksort(p,i+1,high);
}
C语言-排序和查找的更多相关文章
- 数据结构(C语言)—排序
数据结构(C语言)—排序 排序 排序是按关键字的非递增或递减顺序对一组记录中心进行排序的操作.(将一组杂乱无章的数据按一定规律顺次排列起来.) 未定列表与不稳定列表 假设 Ki = Kj ( 1 ≤ ...
- C++ 排序、查找的应用
// order.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "string.h" #includ ...
- leetcode题解:Search in Rotated Sorted Array(旋转排序数组查找)
题目: Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 ...
- 006-筛选分类排序搜索查找Filter-Classificatio-Sort-Search-Find-Seek-Locate
006-筛选分类排序搜索查找Filter-Classificatio-Sort-Search-Find-Seek-Locate https://www.cnblogs.com/delphixx/p/1 ...
- Golang的排序和查找
Golang的排序和查找 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.排序的基本介绍 排序是将一组数据,依指定的顺序进行排列的过程.排序的分类如下 1>.内部排序 指将 ...
- UVA.10474 Where is the Marble ( 排序 二分查找 )
UVA.10474 Where is the Marble ( 排序 二分查找 ) 题意分析 大水题一道.排序好找到第一个目标数字的位置,返回其下标即可.暴力可过,强行写了一发BS,发现错误百出.应了 ...
- C语言排序算法之简单交换法排序,直接选择排序,冒泡排序
C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 简单交换法排序 /*简单交换法排序 根据序列中两个记录键值的比较结果来对换这两 ...
- vector向量容器元素排序与查找
1.利用标准库函数sort()对vector进行排序 参考源码: #include <algorithm> #include <vector> vector<int> ...
- 九度OJ 1174:查找第K小数 (排序、查找)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6376 解决:2539 题目描述: 查找一个数组的第K小的数,注意同样大小算一样大. 如 2 1 3 4 5 2 第三小数为3. 输入: ...
随机推荐
- ABB 机器人 流水灯and跑马灯
MODULE MainModule VAR signaldi signaldi14; PROC main() //di14_test 数字输入信号 WHILE di14_test = DO ycld; ...
- layer.open 回调函数
官方资料:http://www.layui.com/doc/modules/layer.html 在一个弹出框中新增个按钮,点击按钮后执行自己的语句(返回上一页并刷新). layer.open({ti ...
- multiprocessing 多进程实现 生产者与消费者模型JoinableQueue
from multiprocessing import JoinableQueue import time import random import asyncio import logging fr ...
- linux下安装keepalived
keepalived安装文档 1. 安装环境 su - root yum -y install kernel-devel* yum -y install openssl-* yum -y instal ...
- vue中子组件调用父组件里面的数据和方法 父组件调用子组件的数据和方法
1.子组件直接调用父组件的数据和方法 在父组件father,vue <template> <div> <!-- 父组件里面的数据 --> <p>父组件里 ...
- 左偏树 (p3261) 对我来说是一道进阶题
题意:有n座城池,m个人: 每座城池有一个耐久度: 每座城池有一个父亲城池(肯定会形成一棵树),还有flag base (这个看题意) 每个人有一个战力值和一个开始进攻的城池序号: 问:1.每个城池能 ...
- vue使用axios访问后台接口
链接1:https://segmentfault.com/a/1190000012635783#item-2 // axios 使用post方式传递参数,后端接受不到,怎么解决 链接2:http ...
- 吴裕雄 python 机器学习——核化PCAKernelPCA模型
# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt from sklearn import datas ...
- 自己常用的Linux命令和Hadoop命令
记录自己常用的Linux命令: ss的启动命令:ssserver -c /etc/shadowsocks.json jupyter notebook的启动命令:jupyter notebook --a ...
- Win10-IIS注册asp 此操作系统版本不支持此选项 错误解决方法
现象再现: 今日在Win10上面ASP.NET网站突然不能跑了, 过程再现: 根据资料提示重新注册ASPNET_IIS.exe -i 直接提示: C:\WINDOWS\system32>c:\w ...