看完了郝斌老师的c语言视频,冒泡法排序,就试着写了。我觉得学习算法最重要的不是代码,而是它的原理。

代码:

/**
2 * Copyright (c) 1991 - 2016 Arvin Tang.
3 * All rights reserved.
4 *
5 * 文件名称:郝斌C语言视频教程_163_冒泡排序
6 * 简要描述:用冒泡法排序
7 *
8 * 当前版本:1.0
9 * 作 者:
10 * 完成日期:2016-1-9
11 * 修订说明:
12 *
13 * 取代版本:
14 * 作 者:
15 * 完成日期:
16 * 修订说明:
17 */
18 # include <iostream>
19
20 using namespace std;
21
22 void up_sort(int * p, int num);//冒泡升序排序函数
23 void down_sort(int * p, int num);//冒泡降序排序函数
24
25 int main(int argc, char const *argv[])
26 {
27 int num;
28
29 int i;
30
31 int op;//菜单选项
32
33 cout<<"请输入你要排序的个数:"<<endl;
34 cin>>num;
35
36 //申请动态内存
37 int * arrary = (int *)malloc(sizeof(int)*num);
38 if(arrary == NULL)
39 {
40 cout<<"申请动态数组失败!"<<endl;
41 exit(0);//exit(0)表示正常结束,exit(非0值表示错误返回)
42 }
43
44 cout<<"请输入你要排序的数字:"<<endl;
45 for(i = 0; i < num; i++)
46 {
47 cin>>arrary[i];
48 }
49
50 cout<<"请选择排序方式对应的序号:\t1 升序(从小到大)\t2 降序(从大到小)"<<endl;
51 cin>>op;
52
53 switch(op)
54 {
55 case 1 :
56 up_sort(arrary,num);
57 cout<<"升序已排完:"<<endl;
58 break;
59 case 2 :
60 down_sort(arrary,num);
61 cout<<"降序已排完:"<<endl;
62 break;
63 default:
64 break;
65 }
66
67 for(i = 0; i < num; i++)
68 {
69 cout<<arrary[i]<<"\t";
70 }
71
72 cout<<"\n";
73
74 return 0;
75 }
76
77 /**
78 * 函数名称:冒泡法_升序排序
79 * 输入参数:一维数组地址,数组元素个数
80 * 输出参数:
81 * 返 回 值:
82 */
83 void up_sort(int * p, int num)
84 {
85 int i;
86 int j;
87 int temp;
88
89 for(i = 0; i < num-1; i++)
90 {
91 for(j = 0; j < num-i-1; j++)
92 {
93 if(p[j] > p[j+1])
94 {
95 temp = p[j+1];
96 p[j+1] = p[j];
97 p[j] = temp;
98 }
99 }
100 }
101 }
102
103 /**
104 * 函数名称:冒泡法_降序排序
105 * 输入参数:一维数组地址,数组元素个数
106 * 输出参数:
107 * 返 回 值:
108 */
109 void down_sort(int * p, int num)
110 {
111 int i;
112 int j;
113 int temp;
114
115 for(i = 0; i < num-1; i++)
116 {
117 for(j = 0; j < num-i-1; j++)
118 {
119 if(p[j] < p[j+1])
120 {
121 temp = p[j+1];
122 p[j+1] = p[j];
123 p[j] = temp;
124 }
125 }
126 }
127 }

效果:

冒泡法排序_c++实现的更多相关文章

  1. 8. 冒泡法排序和快速排序(基于openCV)

    一.前言 主要讲述冒泡法排序和快速排序的基本流程,并给出代码实现,亲测可用. 二.冒泡法排序 冒泡法排序主要是将相邻两个值比较,把小的向前冒泡,大的向后沉淀,时间复杂度为O(n2).主要思想如下: 分 ...

  2. 【Java基础】选择排序、冒泡法排序、二分法查找

    1.选择排序: //改进后的选择排序,减少交换的次数 public static void sortSelect(int arr[]) { //用于存放最小数的下标 int s; for (int i ...

  3. Java温故而知新-冒泡法排序

    冒泡法排序是各种初学者在学习数组与循环结构时都会练习的一种简单排序算法. 冒泡法的精髓在于比较相邻的两个元素,较大的元素会不断的排到队伍后面去,就像水里的泡泡一样不断向上跑. 想像一下倒在一个透明玻璃 ...

  4. Python 冒泡法排序

    def sequence(disorder='', separators=''): arrays = disorder.split(separators) def desc(): for i in r ...

  5. C#冒泡法排序源码

    如下内容内容是关于C#冒泡法排序的内容,应该对码农有一些用途. int[] myArray = new int[] { 10, 8, 3, 5, 6, 7, 4, 6, 9 }; for( int j ...

  6. [python,2018-01-15] 冒泡法排序

    想写一个冒泡法排序,没什么思路,就先写了个java的 public static void main(String[] args) { int array[] = {88,2,43,12,34,8,6 ...

  7. C语言 · 冒泡法排序

    算法提高 冒泡法排序   时间限制:1.0s   内存限制:512.0MB      输入10个数,用“冒泡法”对10个数排序(由小到大)这10个数字在100以内. 样例输入 1 3 6 8 2 7 ...

  8. C程序数组算法 — 冒泡法排序【前冒 || 后冒】

    第一种写法(前冒泡): /* C程序数组算法 - 冒泡法排序 * 此例子按照 大 -> 小 排序 * 原理:两两相比较,然后进行大小对调 * 比较次数: n^2 次 * 说明:冒泡排序是相对稳定 ...

  9. php 冒泡法 排序

    <?php /** * php 冒泡法 * @param $arr * @param string $order 排序符 * @return $arr */ function orderarr( ...

随机推荐

  1. 如何使用NiFi等构建IIoT系统

    您认为构建一个先进的工业物联网原型需要多长时间: 从传感器收集数据到每个工厂的网关 将传感器数据从一个或多个工厂移至云或数据中心 自动热部署新配置到所有边缘设备 支持大规模数据量和端到端安全性 使用正 ...

  2. .net core的配置介绍(一):IConfiguration

    说到配置,绝大部分系统都会有配置,不需要配置的系统是非常少的,想想以前做.net 开发时,我们常常将配置放到web.config中,然后使用ConfigurationManager去读取. 初次接触到 ...

  3. Swoole 中使用 UDP 异步服务器、UDP 同步客户端、UDP 协程客户端

    UDP 异步风格服务器 # udp_server.php // 创建 UDP 服务器对象,监听0.0.0.0:9502端口,类型为SWOOLE_SOCK_UDP $serv = new Swoole\ ...

  4. CSS基础 结构伪类选择器 last-child、first-child和nth-of-type的使用方法

    一.通过伪类选择器查找单个标签元素html结构 <div> <a herf='#'>导航1</a> <a herf='#'>导航2</a> ...

  5. CSS 基础 选择器的使用汇总

    1.后代选择器 html 结构 <div class='father'> <p>小哥哥 小姐姐</p> <div> <p>小帅锅</p ...

  6. python 面向对象:类属性

    一.概念和使用 类属性就是给类对象定义的属性 类属性用于记录与这个类相关的特征 类属性不会用于记录具体对象的特征 使用赋值语句在  class  关键字下方可以定义类属性 二.代码演示 示例需求: 定 ...

  7. vue再页面渲染json数据时没有显示

    对象点属性不能获取数据. 原因: 在创建数据对象时我使用了k,v方式:tempMap['category '] = this.category[i].label 如果在创建数据时使用的k,v方式,那么 ...

  8. centos7 重定向符号

    这篇只记录使用对应的使用方法,原理后期更新 >> 追加输出 <<追加输入 >输出 <输入 将正确和错误信息同事保留到一个文件 echo "this is ...

  9. SpringBoot学习笔记三之表述层

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6803355920697917965/ 首先配置learn-admin-webui中的web.xml文件 配置Con ...

  10. PPT2010封面形状效果

    原文链接:https://www.toutiao.com/i6486787584457441805/ 一.填充一张背景图片 选择一张空白幻灯片,右键菜单,选择背景格式. 进入"设置背景格式& ...