C语言 数组排序法总结
//快速排序法
void QuickSort(int *a, int left, int right)
{
int i = left;
int j = right;
int k = a[left]; if (i >= j)
{
return;
} while (i < j)
{
while ((i < j) && (k <= a[j]))
{
j--;
} a[i] = a[j]; while ((i < j) && (k >= a[i]))
{
i++;
} a[j] = a[i];
} a[i] = k; QuickSort(a, left, i-1);
QuickSort(a, i+1, right);
} //冒泡排序法
void BubbleSort(int *a, int len)
{
int i, j, k; for (i=0;i<len-1;i++)
for(j=i+1;j<len;j++)
{
if (a[i] > a[j])
{
k = a[i];
a[i] = a[j];
a[j] = k;
}
}
} //选择排序法
//找出最小值与第一个位置交换,在剩余的找出最小值与第二个位置交换,以此类推
void SelectSort(int *a, int len)
{
int i, j, k, tmp;
int m; for (i=0;i<len-1;i++)
{
tmp = a[i];
for (j=i+1;j<len;j++)
{
if (tmp > a[j])
{
tmp = a[j];
k = j;
}
}
if (tmp != a[i])
{
a[k] = a[i];
a[i] = tmp;
}
}
} //插入排序法
//从第二个位置起依次将此数插入前面,使前面的数保持排好的顺序
void InsertSort(int *a, int len)
{
int i, j, k; for (i=1;i<len;i++)
{
k = a[i]; for (j=i-1;j>=0;j--)
{
if (a[j] > k)
{
a[j+1] = a[j];
a[j] = k;
}
}
}
}
C语言 数组排序法总结的更多相关文章
- 12月21日 简单理解Active Recore Callback, destroy_all和delete_all的区别。豆知识(alias),语言学习法(4核心)
destroy_all and delete_all Destroy the records by instantiating each record and calling its #destroy ...
- 大数加法之C语言函数法(只有正数版)
由于某些原因,我于今天2017-4-19将我的博文搬到博客园了,以后我就在这里扎根了. 之前想过在博客写文章方便日后复习,但一直未能实现,所以,现在这篇是我个人人生中第一篇博 ...
- C语言 · 数组排序去重
算法训练 数组排序去重 时间限制:1.0s 内存限制:512.0MB 问题描述 输入10个整数组成的序列,要求对其进行升序排序,并去掉重复元素. 输入格式 10个整数. 输出格式 ...
- C语言 · 冒泡法排序
算法提高 冒泡法排序 时间限制:1.0s 内存限制:512.0MB 输入10个数,用“冒泡法”对10个数排序(由小到大)这10个数字在100以内. 样例输入 1 3 6 8 2 7 ...
- C语言冒泡排序法分析及代码实现
冒泡排序法: 所谓冒泡排序法,就是对一组数字进行从大到小或者从小到大排序的一种算法.具体方法是,相邻数值两两交换.从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换( ...
- C语言选择法排序
#include <stdio.h> int main() { int i, j, p, n, q; ] = {, , , , }; //对无序数组进行排序 ; i<; i++) { ...
- C语言数组排序——冒泡排序、选择排序、插入排序
一.冒泡排序 原理解析:(以从小到大排序为例)在一排数字中,将第一个与第二个比较大小,如果后面的数比前面的小,则交换他们的位置. 然后比较第二.第三个……直到比较第n-1个和第n个,此时,每一次比较都 ...
- c 语言 运算符 优先级
C 语言 运算法优先级 从高 到 低 优先级 运算符 功能 适用范围 结合性 15 () [] . -> 括号 下标 存取成员 存取成员 表达式 数组 结构联合 结构联合 → (左→右) 14 ...
- go语言的学习之路
一.学习前言 (1)go语言的介绍 1.解释型语言:python PHP java scripy (前端) 2.编译型语言:C C++ C#(微软开发) java(sun公司开发 后来被甲 ...
随机推荐
- 用Qt写了一个qq客户端,采用webqq协议,发出来和大家分享一下---大神请无视
首先做以下声明: 本程序基于腾讯公司的webqq协议开发,所有相关版权归腾讯公司所有.此程序只用于技术交流和学习,不得用于其他方面. ---开发者:雨后星辰,转载请注明出处:http://www.cn ...
- Git 从了解到放弃
1. 简单介绍 1.1. git起源 在1991年linus创建了Linux从此linux成为服务器领域的佼佼者,大部分web服务器.邮件.数据库各种服务器端程序都安装在了linux上面运行,主要是因 ...
- 037——VUE中表单控件处理之表单修饰符:lazy/number/trim
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 八、dbms_rls(实现精细访问控制)
1.概述 本报只适用于Oracle Enterprise Edition,它用于实现精细访问控制,并且精细访问控制是通过在SQL语句中动态增加谓词(WHERE子句)来实现的.通过使用ORACLE的精细 ...
- rsync的配置文件模板及简单介绍,命令及参数
必须知道推送有一个限速参数.--bwlimit=100 工作总必须要加.有三种模式,1.本地的模拟cp命令,在一个服务器2.远程的两个服务器之间,模拟scp3.以socket进程监听的方式启动rsyn ...
- 利用CSS变量实现悬浮效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- RabbitMQ(2) vhost、用户和权限
rabbitmq中,vhost提供了资源隔离机制.同时,通过为用户设置vhost粒度的权限,可以实现丰富的权限控制功能. vhost 在rabbitmq中,可以创建被称为虚拟主机(vhost)的虚拟消 ...
- spring项目加载不出来静态资源
方法1: 拦截器中增加针对静态资源不进行过滤(涉及spring-mvc.xml) <!-- 添加注解驱动 --> <mvc:annotation-driven/> <!- ...
- I.MX6 修改调试串口号(ttymx0 -> ttymxc2)
I.MX6 修改调试串口号(ttymx0 -> ttymxc2) 一.参考文章: uboot修改默认调试串口ttymxc0 ->ttymxc4(imx53) http://www.xueb ...
- 我在ubuntu14.04安装使用的软件
搜狗拼音sougoupinyin:sudo add-apt-repository ppa:fcitx-team/nightly && sudo apt-get updatesudo a ...