几种常见的排序算法---交换排序

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

   交换排序的基本思想是

   利用交换数据元素的位置进行排序的方法。


一,冒泡排序

     基本思想是:  每趟不断将记录两两比较,并按“前小后大”(或“前大后小”)规则交换。一次遍历之后总有一个最值被交换到了最后。

java语言实现代码:

     

这个算法不难,我就没有写注释!


二,快速排序

    基本思想:从待排序列中任取一个元素 (例如取第一个) 作为中心,所有比它小的元素一律前放,所有比它大的元素一律后放,形成左右两个子表;
    然后再对各子表重新选择中心元素并依此规则调整,直到每个子表的元素只剩一个。此时便为有序序列了。

    快排算法充分使用了 分治 策略:

java语言实现的代码如下:

     

     程序如果有什么 bug 还望大家指出,希望与大家一起交流学习,合作。

    转载请指明出处!

排序算法——交换排序 今天我们讨论一下交换排序交换排序算法思想:通过交换逆序的元素实现交换排序交换排序主要有两种:一种是冒泡排序,一种是快速排序。一、冒泡排序算法思想:冒泡排序是一种简单的交换排序算法,它是通过交换相邻两个数据元素,逐步将排序序列变成有序序列。基本算法思想描述如下: 假设待排序元素有n个,从第一个元素开始一次交换相邻的两个逆序元素,直到最后一个元素为止。第一趟排序结束,将最大的元素移动到序 阅读详情

相关推荐

排序——交换排序 主要包括:《冒泡排序》《快排—四种快排方法》

交换排序的思想:就是将再序列中标记的两个值,进行交换,我们将较大的值往后移动,将较小的值往前移动。 (1)冒泡排序 冒泡排序的思想:就是把第一个值与后面的值全部进行比较,并且交换,直到找到自己位置,然后重复这个过程。 下面是我们是实现的代码; void BubbleSort(int* a, int n) //没有优化之前的 { int i = 0; int end = n ; ...

dpfxaca6的博客 1784

排序——交换排序

前面我们讲了直接插入排序和希尔排序这两种插入排序,以及直接选择排序和堆排序这两种选择排序。如果还有什么问题就请点击下面的链接插入排序选择排序那么今天我们就来讲一讲交换排序

zdlynj的博客 2591

交换排序

交换排序:根据两个记录值的比较结果来交换两个记录值在序列中的位置,常见交换排序有冒泡排序(Bubble Sort),鸡尾酒排序(Cocktail Sort),奇偶排序(OddEven Sort),地精排序(Gnome Sort),快速排序(Quick Sort),臭皮匠排序(Stooge Sort),梳排序(Comb Sort),Bogo排序(Bogo sort)。 一. 冒泡排序

Seawood_Xie的博客 623

“深入理解”—交换排序算法

基于交换排序算法有两种:冒泡排序和快速排序 1、冒泡排序(Bubble Sort)算法描述:比较相邻两个元素的大小,如果反序,则交换。若按升序排序,每趟将数据序列中的最大元素交换到最后位置,就像气泡从水里出来一样。 举例如下: //冒泡排序 public static void bubblesort(int[] a) { boolean flag...

weixin_34122604的博客 474

几种常见排序算法的Python实现及代码详解

五种常见排序算法Python实现

m0_57833768的博客 1854

arraylist从大到小排序_论数组的N种排序算法

本篇文章仅介绍顺序表(即数组)的N种常见排序算法,以后遇到有意思的算法还会持续补充。其他数据结构的排序不在本文讨论范围内。本文所有算法由C#代码实现,将32位有符号整数int类型(取值范围[-2^31,2^31-1])数组按从小到大排序排序算法分类大致如下(不全,有时间就慢慢补充吧)2019年7月6日更新内部排序排序期间所有元素均在内存里。外部排序排序期间元素无法全部存放在内存中,必须在排...

weixin_39796140的博客 1291

各种排序算法以及时间复杂度问题

相关概念 时间复杂度 (在排序过程中需要比较和交换的次数) 空间复杂度 (在排序过程中需要的辅助存储空间) 稳定性 (该算法的实现是否可以保证排序后相等元素的初始顺序,只要该算法存在一种实现可以保证这种特征,那么该算法就是稳定的) 内部排序/外部排序 (在排序过程中数据元素是否完全在内存) 冒泡排序 数组中有n个数,比较每相邻两个数,如果前者大于后者,就把两个数交换位置;这样一来...

木易一 5193

常见几种排序算法

排序算法直接插入法排序希尔排序冒泡法排序快速排序 直接插入法排序 int[] arr = new int[]{54,5,95,68,22,6,0,99,85,68}; int length = arr.length; //计算数组的长度 for(int i = 1; i < length;i++) { if(arr[i]<arr[i-1]...

CHIZHIDA 507

arraylist数字排序_常见排序算法总结 - Java 实现

优质文章,及时送达作者 | 小蓝来源 | 蓝桥(id:lanqiaocenter)排序算法可以分为两大类:1、非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。2、线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。相关概念稳定:如果a原本...

weixin_39562554的博客 1091

几种常见排序算法

1.冒泡排序 思路: 每趟顺序比较相邻的两个数,如果两数逆序(即由高到低),则交换两数,最多进行n-1趟,即完成n个数从大到小排列。 js代码如下: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <script> /*冒泡排序*/ va

weixin_44185143的博客 218

java常见排序算法

前言: 在学习java的过程中,我们最常用到的就是数组和集合,自然而然的,就不得不面对算法,总结一下常见几种算法和应用。 1.冒泡排序 冒泡排序可以说是我们接触最多,使用最广的一种排序法了, 它的原理是:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是不断重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二

qq_49711509的博客 88

C++实现基本的排序算法(详细解析以及源代码实现)

排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法算法本身的速度要求很高。 而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。在后面我将 给出详细的说明。      这里将按照算法的复杂度,从简单到难来分析算法。  一、简单排序算法  由于程序比较简单,所以没有加什么注释。所有的程序都给出了完整的运行代码,并在我的VC6.0环境  下运行通过。

475

C# 排序算法

C#排序算法之冒泡排序      这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡using   System;             namespace   BubbleSorter     {      public   class   BubbleSorter      {      public   void   Sort(int   [...

xiaogui340的专栏 615

排序算法总结

几种常见排序算法,你收藏了多少文章,自己手动敲过嘛?

weixin_55086330的博客 3992

自己实现的几种排序算法,含源代码java

冒泡排序,时间复杂度O(n^2): public static void bubbleSort(int[] array) { int temp; for (int i = 0; i < array.length; i++) { for (int j = i + 1; j < array.length; j++) { if (array[i] > array[j]) {

qq_23617681的博客 414

排序问题:交换,选择,插入

 交换:两两交换,从小到大。 选择:两两比较,直到确定最大值,将之排在最后。 插入:······体会吧! 快排:············不好理解的排序方式。 var a=[2,5,6,14,9,1,12]; for(var i =0; i&lt;a.length - 1; i++){ for(var j=0; j&lt;a.length - 1- i;j++){ if(a[j]&g...

MOU_littleGuo的博客 657

【数据结构】 排序算法

对几类排序算法简要概括 所有排序最终目标均为得到升序序列!

zgsdlr的博客 605

各种常见排序算法及其实现 .

一、排序的概念 一、排序(sort)或分类 所谓排序,就是要整理文件中的记录,使之按关键字递增(或递减)次序排列起来。其确切定义如下: 输入:n个记录R1,R2,…,Rn,其相应的关键字分别为K1,K2,…,Kn。 输出:Ril,Ri2,…,Rin,使得Ki1≤Ki2≤…≤Kin。(或Ki1≥Ki2≥…≥Kin)。   1.被排序对象--文件 被排序的对象--文件由一组记录组成。记录

计算机技术博客 2105

数据结构-常见排序算法概念及实现

插入排序: ①直接插入排序 ②希尔排序 选择排序: ①选择排序 ②堆排序 交换排序: ①冒泡排序 ②快速排序 归并排序: 归并排序

m0_49619206的博客 182
上一篇: 几种常见的排序算法---选择排序
下一篇: 查找吸血鬼数字菜鸟级写法
stylrmomo
博客等级 码龄14年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值