排序算法一
来源:互联网 发布:淘宝天猫旗舰店申请 编辑:程序博客网 时间:2024/05/17 22:09
3个简单的排序算法,不多解释了,直接上代码:
#include <stdio.h>#include <stdlib.h>void Display(int a[], int n){for (int i = 0; i< n; ++i){printf("%d, ", a[i]);}printf("\n");}void Exchange(int a[], int i, int j){int tmp = a[i];a[i] = a[j];a[j] = tmp;}//冒泡排序void popSort(int a[], int n){bool tag = true;for (int i = 0; i< n && tag; ++i){tag = false;for (int j = 0; j< n-i-1 ; j++){if(a[j]< a[j+1]){//不断的交换到适合的位置Exchange(a, j , j+1);tag = true;}}//end for j}printf("popSort...\n");Display(a, n);}//选择排序void SelectSort(int a[], int n){for (int i = 0; i< n; ++i){int j =i;for (int k = i; k< n; ++k){//经过比较,选择出最值的下标if(a[k] < a[j])j = k;}if(j != i)Exchange(a, i, j);}printf("SelectSort...\n");Display(a, n);}//插入排序//(参考链表的插入排序,是假设分成2个链表来排序的) void InsertSort(int a[], int n) { for (int i = 0; i< n; ++i) { //在原有数组中取出元素 int tmp = a[i]; int j =0; //放到一个有序数组中 for (j = i-1; j>=0&&(tmp > a[j]); --j) { a[j+1] = a[j]; } a[j+1] = tmp; } printf("InsertSort...\n"); Display(a, n); }int main(){int a[6] = {5, 4, 3, 2, 1, 9};popSort(a, 6);SelectSort(a, 6);InsertSort(a, 6);system("pause");return 0;}
0 0
- 排序算法(一) 选择排序
- 排序算法《一》冒泡排序
- 排序算法一 冒泡排序
- 排序算法(一):插入排序
- 一、排序算法 归并排序
- 排序算法一:插入排序
- 排序算法一:冒泡排序
- 排序算法一:冒泡排序
- 排序算法(一)-希尔排序
- 排序算法一:冒泡排序
- 排序算法(一):冒泡排序
- 排序算法一:快速排序
- 排序算法一:堆排序
- 排序算法(一)-冒泡排序
- 排序算法:(一)快速排序
- 排序算法(一)
- 排序算法(一)
- 排序算法(一)
- poj 3176 Cow Bowling
- 分布式系统协调 ZooKeeper
- javascript_C3数据类型【下】
- hdu 1087 zoj 1107 FatMouse and Cheese
- POSIX 线程详解
- 排序算法一
- 2013蓝桥杯 【初赛试题】 带分数
- poj 2533 && zoj 2136 Longest Ordered Subsequence --- LIS模板
- Java内存解析 栈 堆 常量池
- 用MySQL生成随机整数的方法【随机数】
- Win7环境下VS2010配置Cocos2d-x-2.1.4最新版本的开发环境(亲测)
- poj 1014 && zoj 1149 Dividing --- dfs剪枝
- fedora 20 phpMyAdmin的安装
- SQL注入原理解析入门教程