首页 > 其他分享 >交换排序

交换排序

时间:2023-08-12 11:33:07浏览次数:38  
标签:记录 交换 排好序 冒泡排序 排序 比较

数据结构--交换排序

基本思想:

两两比较,如果发生逆序则交换,直到所有记录都排好序为止.

image-20230812110517796

冒泡排序

每趟不断将记录两两比较,并且按照"前小后大"规则交换.

image-20230812110914010

冒泡排序的过程演示

image-20230812111202203

image-20230812111340087

image-20230812111821370

n个记录,需要比较n-1趟.

第m躺需要比较n-m次

冒泡排序算法描述

image-20230812112023930

还可以继续优化:某一趟比较时不出现记录交换,说明已经排好序了

image-20230812112238830

改进的冒泡排序算法

image-20230812112523652

时间复杂度

image-20230812112748277

image-20230812112833842

冒泡排序是稳定的

排序方法的比较

image-20230812112858253

快速排序

标签:记录,交换,排好序,冒泡排序,排序,比较
From: https://www.cnblogs.com/harper886/p/17624561.html

相关文章

  • 【蓝桥杯备赛系列 | 简单题】数组排序(八大排序演示)
    ......
  • 冒泡排序
    #include<iostream>usingnamespacestd;intmain(){intt,a[4];for(inti=1;i<=3;i++){cin>>a[i];}for(inti=1;i<=2;i++){for(intj=1;j<=3-i;j++){if(a[j]<a[j+1]){t......
  • 【剑指Offer】16、合并两个排序的链表
    【剑指Offer】16、合并两个排序的链表题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解题思路:首先需要判断几个特殊情况,即判断输入的两个指针是否为空。如果第一个链表为空,则直接返回第二个链表;如果第二个链表为空,则直接......
  • C++快速排序
    快速排序介绍:基础思路:首先快速排序是由冒泡排序所改进的,都是通过多次比较和交换来实现排序,但快速排序是通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,分别对这两部分记录继续进行排序,以达到整个序列有序。思路详解:(1)首先我们先设定......
  • 插入排序(LOW)
    博客地址:https://www.cnblogs.com/zylyehuo/#_*_coding:utf-8_*_definsert_sort(li):foriinrange(1,len(li)):#i表示摸到的牌的下标tmp=li[i]j=i-1#j指的是手里的牌的下标whilej>=0andli[j]>tmp:li[......
  • 【数据结构】排序2 插入排序
    插入排序的基本思想:每次将一个待排序的记录按其关键字大小插入前面已经排好序的序列,直到全部关键字都插入到子序列中为止。根据这种思想有这几种常用的插入排序算法:直接插入,折半插入和希尔排序。1.直接插入排序......
  • 选择排序(简单版)(LOW)
    博客地址:https://www.cnblogs.com/zylyehuo/#_*_coding:utf-8_*_defselect_sort_simple(li):li_new=[]foriinrange(len(li)):min_val=min(li)li_new.append(min_val)li.remove(min_val)returnli_newli=[3,4,2,1,5,6......
  • 选择排序(LOW)
    博客地址:https://www.cnblogs.com/zylyehuo/#_*_coding:utf-8_*_defselect_sort(li):foriinrange(len(li)-1):#i是第几趟min_loc=iforjinrange(i+1,len(li)):ifli[j]<li[min_loc]:min_loc=j......
  • 冒泡排序(LOW)
    博客地址:https://www.cnblogs.com/zylyehuo/#_*_coding:utf-8_*_importrandomdefbubble_sort(li):foriinrange(len(li)-1):exchange=Falseforjinrange(len(li)-i-1):ifli[j]>li[j+1]:li[j],li[j+1......
  • 王道408---冒泡排序、快速排序、直接插入排序、希尔排序、二路归并排序、简单选择排序
    一、冒泡排序冒泡排序属于交换类的排序//时间复杂度:O(n^2)//空间复杂度:O(1)//稳定排序算法#include<stdio.h>#include<iostream>usingnamespacestd;intarr[16];voiddebug(){for(inti=1;i<16;i++){printf("%d",arr[i]);}puts("......