C#冒泡排序法及优化
冒泡排序法及优化:
static void Main(string[] args)
{
int[] sums = { , , , , , };
int compareCount = ; //冒泡排序法
for (int i = ; i < sums.Length - ; i++) //总共要比较的趟数
{
for (int j = ; j < sums.Length - - i; j++) //每趟中要比较的次数
{
if (sums[j] > sums[j + ]) //判断两个数值的大小,若前一项比后一项大,则交换位置
{
int temp = sums[j];//定义一个中间量temp
sums[j] = sums[j + ];
sums[j + ] = temp;
} compareCount++;
}
} //冒泡排序法优化
//当循环内交换不再进行时,也就是整个序列已经有序,这时可以结束排序以达到优化目的
bool flag = true;
for (int i = ; i < sums.Length - && flag; i++) //总共要比较的趟数
{
flag = false;
for (int j = ; j < sums.Length - - i; j++) //每趟中要比较的次数
{
if (sums[j] > sums[j + ]) //判断两个数值的大小,若前一项比后一项大,则交换位置
{
int temp = sums[j];//定义一个中间量temp
sums[j] = sums[j + ];
sums[j + ] = temp; flag = true;
} compareCount++;
}
} Console.Write("使用冒泡排序后得到的顺序为:");
for (int i = ; i < sums.Length; i++) //将排序后的数值按序输出
{
Console.Write(sums[i] + " ");
}
Console.WriteLine();
Console.WriteLine("排序次数为:");
Console.WriteLine(compareCount);
Console.ReadKey();
}
如果这些类容帮助到你了,希望您给予支持 o(^▽^)o
(支付宝)
C#冒泡排序法及优化的更多相关文章
- c语言:简单排序:冒泡排序法、选择排序法、插入排序法(待写)
1.冒泡排序法: 假设有n个数需要按从小到大排序,冒泡排序的原理是,在这一排数字中,将第一个数与第二个数比较大小,如果后面的比前面的小,就将他们交换位置.然后再比较第二个和第三个,再交换,直到第n-1 ...
- python排序之二冒泡排序法
python排序之二冒泡排序法 如果你理解之前的插入排序法那冒泡排序法就很容易理解,冒泡排序是两个两个以向后位移的方式比较大小在互换的过程好了不多了先上代码吧如下: 首先还是一个无序列表lis,老规矩 ...
- C语言 数组输出,冒泡排序法,沉底排序法,二维数组输出,输出字母列长度,从随机数组中找重复数
#include <stdio.h> #define sum 3+4//宏定义是原封不动的使用used for test4 #include <time.h>//used fo ...
- PHP 冒泡排序法
<?php // 冒泡排序法:将一个数组中的值按照从小到大的顺 序排序 $arr = array(33, 1, 4, 5, 2, 3, 7, 9, 8, 99); $len = count($a ...
- 关于Java中的选择排序法和冒泡排序法
一,这种方法是直接传入一个数组进行排序(选择排序法) public static void selectSort(int arr[]){ for (int i = 0; i < arr.leng ...
- java算法之冒泡排序法
由此可见:N个数字要排序完成,总共进行N-1趟排序,每第 i 趟的排序次数为 (N-i) 次,所以 可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数,即 for(inti=0;i& ...
- PHP冒泡排序法
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法.法如其名,就是像冒泡一样,每次从数组当中 冒一个最大的数出来. 冒泡排序它重复地走访过要排序的数列,一次比较两个元素,如果他 ...
- c/c++ 算法之快速排序法 冒泡排序法,选择排序法,插入排序法
本文详细叙述和实现了快速排序算法,冒泡排序 选择排序 插入排序比较简单,原理在这里不再详述,直接用代码进行了实现. 快速排序法(quicksort)是目前所公认最快的排序方法之一(视解题的对象而定), ...
- php 四种基础的算法 ---- 冒泡排序法
1. 冒泡排序法 * 思路分析:法如其名,就是像冒泡一样,每次从数组当中 冒一个最大的数出来. * 比如:2,4,1 // 第一次 冒出的泡是4 * ...
随机推荐
- JSP的域对象的作用范围
<%-- Created by IntelliJ IDEA. User: tT丶 Date: 2017-12-12 Time: 14:53 To change this template use ...
- Synchronized介绍
来源 https://www.imooc.com/learn/1086 作用 同步方法支持一种简单的策略来防止线程干扰和内存一致性错误,如果一个对象对多个线程可见,则对该对象变量的所有读取或写入都 ...
- vue使用element案列
第一步:使用vue创建项目‘ 第二步:在项目添加element cmd:vue add element demo:https://github.com/weibanggang/vuemode.git
- CSS 高级选择器
相信各位如我一样的“抠图崽”和前端大佬们,在写网页样式的实话,总是免不了写下各种各样的选择器,再给选择的元素写入样式.最基本的元素选择器.class选择器.ID选择器等就不再过多的说了,相信大家都熟的 ...
- Spark Streaming编程示例
近期也有开始研究使用spark streaming来实现流式处理.本文以流式计算word count为例,简单描述如何进行spark streaming编程. 1. 依赖的jar包 参考<分别用 ...
- UIButtonType各个类型的解释:
UIButtonType各个类型的解释: typedef NS_ENUM(NSInteger, UIButtonType) { UIButtonTypeCustom = , UIButtonTypeS ...
- The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.报该错误的一种原因。
今天发现某个action返回404. HTTP Status 404 – Not Found Type Status Report Message /xxx.action Description Th ...
- linux系统基础之---文件系统(基于centos7.4 1708)
- es6 Reflect对象详解
Reflect是ES6为操作对象而提供的新API,而这个API设计的目的只要有: 将Object对象的一些属于语言内部的方法放到Reflect对象上,从Reflect上能拿到语言内部的方法.如:Obj ...
- react-router 4.0版本使用笔记
react-router 4变化还是挺大的,看网上很多人遇到问题,都是基本用法的改变,所以这里记录一下. http://www.jianshu.com/p/d6727e8d81c4 1.react-r ...