冒泡法排序_c++实现
看完了郝斌老师的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++实现的更多相关文章
- 8. 冒泡法排序和快速排序(基于openCV)
一.前言 主要讲述冒泡法排序和快速排序的基本流程,并给出代码实现,亲测可用. 二.冒泡法排序 冒泡法排序主要是将相邻两个值比较,把小的向前冒泡,大的向后沉淀,时间复杂度为O(n2).主要思想如下: 分 ...
- 【Java基础】选择排序、冒泡法排序、二分法查找
1.选择排序: //改进后的选择排序,减少交换的次数 public static void sortSelect(int arr[]) { //用于存放最小数的下标 int s; for (int i ...
- Java温故而知新-冒泡法排序
冒泡法排序是各种初学者在学习数组与循环结构时都会练习的一种简单排序算法. 冒泡法的精髓在于比较相邻的两个元素,较大的元素会不断的排到队伍后面去,就像水里的泡泡一样不断向上跑. 想像一下倒在一个透明玻璃 ...
- Python 冒泡法排序
def sequence(disorder='', separators=''): arrays = disorder.split(separators) def desc(): for i in r ...
- C#冒泡法排序源码
如下内容内容是关于C#冒泡法排序的内容,应该对码农有一些用途. int[] myArray = new int[] { 10, 8, 3, 5, 6, 7, 4, 6, 9 }; for( int j ...
- [python,2018-01-15] 冒泡法排序
想写一个冒泡法排序,没什么思路,就先写了个java的 public static void main(String[] args) { int array[] = {88,2,43,12,34,8,6 ...
- C语言 · 冒泡法排序
算法提高 冒泡法排序 时间限制:1.0s 内存限制:512.0MB 输入10个数,用“冒泡法”对10个数排序(由小到大)这10个数字在100以内. 样例输入 1 3 6 8 2 7 ...
- C程序数组算法 — 冒泡法排序【前冒 || 后冒】
第一种写法(前冒泡): /* C程序数组算法 - 冒泡法排序 * 此例子按照 大 -> 小 排序 * 原理:两两相比较,然后进行大小对调 * 比较次数: n^2 次 * 说明:冒泡排序是相对稳定 ...
- php 冒泡法 排序
<?php /** * php 冒泡法 * @param $arr * @param string $order 排序符 * @return $arr */ function orderarr( ...
随机推荐
- Java,JDK安装及环境配置
jdk安装及环境配置 一.jdk安装 1.找到jdk安装包 2.安装jdk 3.安装jre 二.环境变量配置 1.JAVA_HOME JAVA_HOME C:\Program Fil ...
- Java Web程序设计笔记 • 【第1章 Web应用程序】
全部章节 >>>> 本章目录 1.1 Web 应用程序 1.1.1 Web 应用程序概述 1.1.2 Web 应用程序的工作原理 1.1.3 实践练习 1.2 HTTP协议 ...
- 使用 DML语句,对 “锦图网” 数据进行操作,连接查询(内连接,左外连接,右外连接,全连接)
查看本章节 查看作业目录 需求说明: 对 "锦图网" 数据进行操作: 统计每一种线路类型的线路数量.最高线路价格.最低线路价格和平均线路价格,要求按照线路数量和平均线路价格升序显示 ...
- PostgreSQL数据库安装Version10.5
PostgreSQL数据库安装,基于版本10.5安装, 在Linux系统上使用*.gz二进制压缩包手动安装. 操作系统:Red Hat Enterprise Linux Server release ...
- 【Warrior刷题笔记】剑指offer 6 24 35. 三道题,让你学会链表递归迭代辅助栈
题目一 从尾到头打印链表 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-l ...
- Python基础案例练习:制作学生信息管理系统
一.前言 学生信息管理系统,相信大家或多或少都有做过 最近看很多学生作业都是制作一个学生信息管理系统 于是,今天带大家做一个简单的学生信息管理系统 二.开发环境: 我用到的开发环境 Python 3. ...
- 分享一篇:sql语句中使用子查询,可能会引起查询的性能问题,查询时间会变长
前段时间,做自动化适配的时候,查找需要的数据的时候,使用到了dblink,跨数据库实例进行访问,整段sql拼接再加上dblink,在plsql查询的时候,性能还不是很长时间,最多2分钟可以查到,前期调 ...
- HttpRunner_参数化进阶
一.获取返回包数据 在提取参数时,当 HTTP 的请求响应结果为 JSON 格式,则可以采用.运算符的方式,逐级往下获取到参数值:响应结果的整体内容引用方式为 content 或者 body,如上 ...
- springMVC+redis+redis自定义工具类 的配置
1. maven项目,加入这一个依赖包即可, <dependency> <groupId>redis.clients</groupId> <artifactI ...
- Elasticsearch打造全文搜索引擎(二)
一.Es的文档.索引的CURD操作 1. elasticsearch概念 集群:一个或多个节点组织在一起 节点:一个节点是集群中的一个服务器,有一个名字来标识,默认是一个随机的漫画角色的名字 分片:将 ...