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公司开发 后来被甲 ...
随机推荐
- nyoj——113 getline
字符串替换 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 编写一个程序实现将字符串中的所有"you"替换成"we" 输入 ...
- 用U盘安装ubuntu
用U盘安装操作系统,并不鲜见,对于Windows,可以用大白菜安装XP.Win7等,本质上是在U盘上安装一个小型的windows(WinPE),然后利用ghost一键还原技术,把U盘中的XP.gho( ...
- iRSF快速简单易用的实现列表、排序、过滤功能
IRSF 是由javascript编写,iRSF快速简单易用的实现列表.排序.过滤功能(该三种操作以下简称为 RSF ). iRSF由三个类组成. iRSFSource 数据源 iRSFFilter ...
- myeclipes快捷键
package com.Test02;//alt+shift+s+s 自动创建toString()//ctrl+ shift+ o 自动导包//* alt+ shift +s+o 有参构造//* a ...
- (转载) Chrome中canvas上drawImage无法画出image的解决办法
在自己写demo的过程中 碰到了这样一个问题 发现drawImage方法没有达到预期的效果 图片没办法显示 而fillRect等画图形的方法却工作良好 大概的代码如下: $(function() { ...
- Appium测试Webview
通常情况下我们都是通过Android自带的tools下的UI automator viewer来获取控件或元素的xpath.class.id等来直接进行定位 如下面的“用户登录”按钮: 但是有一些并不 ...
- 如何利用$_SERVER["PHP_SELF"]变量植入script代码?
假如我们是黑客,可以诱骗用户访问如下链接, 相当于用户会在浏览器地址栏中输入以下地址: http://www.xxx.com/test_form.php/%22%3E%3Cscript%3Ealert ...
- 【转】DirectUI 资源提取器
转自 http://www.cnblogs.com/Alberl/p/3378413.html 二.DirectUI 资源提取器 由于不能用传统工具,那么怎么办呢?可能有很多网友都知道QQ ...
- java.lang.IllegalArgumentException: Invalid character found in method name
1.错误描述 信息: Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors ...
- HDU 1806
http://acm.hdu.edu.cn/showproblem.php?pid=1806 非常玄妙的rmq问题,这个st算法有点神 #include <iostream> #inclu ...