当前位置: 首页 > news >正文

冒泡排序和简答选择排序

冒泡排序

一种典型的交换排序
类似水冒泡,大元素经不断的交换由水底慢慢的浮出
从头到尾,循环比较两相邻的元素
    大的元素移到后面,小的放前面-每次循环,大的元素会排到最后

代码如下: 

#include<stdio.h> 
#include<stdlib.h>
//升序排序
void Bubble_sort(int a[], int size){int i,j,temp;for(int i=0 ; i<size-1 ;i++) //size-1 : 不用和自己比较{int flag =0;//比较记号//在a[0]到a[size-i-1]之间比较,将最大的数放最后(即a[size-i-1])for(int j=0 ; j<size-i-1 ; j++)	{if(a[j] > a[j+1])//比较,大的在后面{temp = a[j]; a[j]= a[j+1]; a[j+1]=temp;flag =1;}}//若flag为0,则在该轮次没有交换动作,说明排序已经完成,break跳出循环if(flag == 0 ) break;	}
}void main()   
{	int a[10];printf("输入10个整形数据(整数):");for(int i=0;i<10 ; i++)scanf("%d",&a[i]);  Bubble_sort(a,10);	//排序处理printf("排序后的数组:\n");for(int i=0;i<10 ; i++)printf("%d ",a[i]);  system("pause");//屏幕暂停
}

简单选择排序

简单选择排序(Select Sort)示意图如下图所示。 

 

代码如下:

#include<stdio.h> 
#include<stdlib.h>void SelectSort(int arr[],int n){//minIndex用于记录每一趟中最小元素的下标int i,j,temp,minIndex;/*外层循环,用于控制第1层到第n-1轮排序第i轮循环时,后面部分的元素的下标范围为(i-1) 到 (n-1)*/for( i=1; i<n ; i++ ){//将后面(未排序)部分的第1个元素赋予minIndexminIndex = i-1;for(j =i ; j < n ; j++ ){	//找到本轮循环中最小元素if( arr[j]<arr[minIndex] ){	minIndex = j;}}//若本轮中最小的元素不是后面部分的第1个元素,则需要交换元素if(minIndex != i-1 ){temp=arr[minIndex]; arr[minIndex]=arr[i-1]; arr[i-1]=temp;}}
}void main(){	int a[10];printf("输入10个整形数据(整数):");for(int i=0;i<10 ; i++)scanf("%d",&a[i]);  SelectSort(a,10);	//排序处理printf("排序后的数组:\n");for(int i=0;i<10 ; i++)printf("%d ",a[i]);  printf("\n");system("pause");//屏幕暂停
}

http://www.lryc.cn/news/196571.html

相关文章:

  • leetcode3. 无重复字符的最长子串 [滑动窗口]
  • 软件工程与计算总结(十六)详细设计的设计模式
  • List集合拆分为多个List
  • Hadoop3教程(十三):MapReduce中的分区
  • 笔记本Win10系统一键重装操作方法
  • FilterRegistrationBean能不能排除指定url
  • 【LeetCode】36. 有效的数独
  • 华为---PPP协议简介及示例配置
  • asp.net老年大学信息VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio计算机毕业设计
  • 模型量化笔记--对称量化和非对称量化
  • PA2019 Terytoria
  • 内容分发网络CDN分布式部署真的可以加速吗?原理是什么?
  • 微服务docker部署实战
  • js实现拖拽功能
  • 数据库主从切换过程中Druid没法获取连接错误
  • 【iOS】Mac M1安装iPhone及iPad的app时设置问题
  • Springboot 启动报错@spring.active@解析错误
  • 【算法挨揍日记】day15——560. 和为 K 的子数组、974. 和可被 K 整除的子数组
  • 数字时代的探索与革新:Socks5代理的引领作用
  • 算法-堆/归并排序-排序链表
  • word 如何编写4x4矩阵
  • INTELlij IDEA编辑VUE项目
  • linux进程间通讯--信号量
  • VS Code连接远程Linux服务器开发c++项目
  • stable diffusion的模型选择,采样器选择,关键词
  • BI零售数据分析:以自身视角展开分析
  • Maven 使用教程(三)
  • 行秋找工作的记录
  • vue项目打包,使用externals抽离公共的第三方库
  • 九阳真经之各大厂校招