首页 > 其他分享 >桶排序 选择,插入排序

桶排序 选择,插入排序

时间:2024-11-10 09:41:06浏览次数:3  
标签:10 main int 插入排序 namespace 选择 数组 排序

(2)选择排序:
基本思想:从数组的未排序区域选出一个最小的元素,把它与数组中的第一个元素交换位置;然后再从剩下的未排序区域中选出一个最小的元素,把它与数组中的第二个元素交换位置。重复上述过程,直到数组中的所有元素按升序排列完成。
【案例】
对一维数组中的十个数据进行从小到大排序:
#include<iostream>
using namespace std;
int main(){
	int a[]={1,3,5,8,9,10,7,34,89,46};
	int m=0;
	for(int i=0;i<10;i++){
		int wz=i;
		for(int j=i+1;j<10;j++){
			if(a[j]<a[wz]){
				wz=j;
			}
		}
		m=a[i];
		a[i]=a[wz];
		a[wz]=m;
	}
	for(int i=0;i<10;i++){
		cout<<a[i]<<" ";
	}
	return 0;
}
(3)插入排序:
基本思想:把一个要排序的数组划分为已排序和未排序的两部分,再从未排序部分逐个去除元素,把它和已排序元素进行比较,从右到左比较相邻的两个元素,如果右边的元素比左边的元素小,则交换两个元素,并向左继续比较和交换,否则就停止比较。按此处理未排序部分的所有元素,最终得到一个按升序排列的有序数组。这种算法也叫直接插入排序。
【案例】
对一维数组中的十个数据进行从小到大排序:
#include<iostream>
using namespace std;
int main(){
	int a[]={1,3,5,8,9,10,7,34,89,46};
	int m=0;
	for(int i=1;i<10;i++){
		for(int j=i;j>0;j--){
			if(a[j]<a[j-1]){
				m=a[j]; 
				a[j]=a[j-1];
				a[j-1]=m;	
			}else{
				j=0;
			}
		}
	
	}
	for(int i=0;i<10;i++){
		cout<<a[i]<<" ";
	}
	return 0;
}
桶排序思想:
把每个数组开辟的空间看作一个桶,
将与桶编号相同的数据存入桶中

1 3 5 7 9 8 6 4 2 10 数据b[]
开辟桶的个数大于数据最大值
第一步:桶内初始化为0
第二步:判断数据存入桶中 
 a[11] 
 a[0]...a[10]
if(i==b[j])
a[i]++;
第三步输出:
if(a[i]!=0){
	i
	a[i]--;
}
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main(){
	int a[10]={1,3,9,9,9,10,2,4,6,8};
	int b[1000];
	memset(b,0,sizeof(b));//数组全部初始化为0
//	for(int i=0;i<1000;i++){
//		b[i]=0;
//	} 
	for(int i=0;i<10;i++){
		b[a[i]]++;
	}
	for(int i=0;i<1000;i++){
		while(b[i]!=0){
			cout<<i<<" "; 
			b[i]--;
		}
	}
	return 0;
}

  

标签:10,main,int,插入排序,namespace,选择,数组,排序
From: https://www.cnblogs.com/guoliheng/p/18537660

相关文章

  • 桶排序2
    #include<iostream>#include<bits/stdc++.h>usingnamespacestd;/*桶排序思想:把每个数组开辟的空间看作一个桶,将与桶编号相同的数据存入桶中13579864210数据b[]开辟桶的个数大于数据最大值第一步:桶内初始化为0第二步:判断数据存入桶中a[11]a[0].........
  • 【VBA实战】用Excel制作排序算法动画续
    为什么会产生用excel来制作排序算法动画的念头,参见【VBA实战】用Excel制作排序算法动画一文。这篇文章贴出我所制作的所有排序算法动画效果和源码,供大家参考。冒泡排序:插入排序:选择排序:快速排序:归并排序:堆排序:希尔排序:完整源码如下。OptionExplicitPublichm......
  • 计算机专业的未来: 2025年,你该如何选择?
    计算机专业的未来:2025年,你该如何选择?在即将到来的2025年,关于计算机专业的选择变得愈发复杂。这个领域吸引了无数年轻人的目光,但你是否真的知道选择计算机专业的月光与阴影?本文将深入探讨计算机专业的现状、斯坦福大学的计算机科学分析,以及国有企业的就业前景,帮助你做出明......
  • 为何选择Spring AI Alibaba开发智能客服平台?
    0前言本文来看如何使用SpringAIAlibaba构建Agent应用。1需求智能客服平台,可帮助用户完成机票预定、问题解答、机票改签、取消等动作,具体要求:基于AI大模型与用户对话,理解用户自然语言表达的需求支持多轮连续对话,能在上下文中理解用户意图理解机票操作相关的术语与规范......
  • 排序算法 - 冒泡
    文章目录1.冒泡排序1.1简介1.2基本步骤:1.3示例代码(C)1.4复杂度分析1.5动画展示1.冒泡排序1.1简介冒泡排序(BubbleSort)是一种简单的排序算法,其基本思想是通过相邻元素的比较和交换,把最大的元素逐步“冒泡”到列表的末尾。该算法的名称来源于较小的元素会逐......
  • GPU不一定是最佳选择
    1GPU确实很快Bepuphysicsv2主要对两个架构细节非常敏感:内存带宽和浮点吞吐量。从配备双通道DDR3内存(如3770K)的四核4宽SIMDCPU到配备AVX2和更高频率DDR4的7700K,可以带来巨大的速度提升。尽管它仍然只是四核,而且从IvyBridge到KabyLake的通用IPC/时钟改进并......
  • 前端代码分析题(选择题、分析题)——JS事件循环分析
     Promise其实也不难-CSDN博客Promise的执行顺序分析Promise对象的执行是异步的,但其执行器函数内部的代码是立即执行的,而then方法注册的回调函数则是在Promise状态改变后执行的。constmyPromise=newPromise((resolve,reject)=>{console.log('A');console.......
  • fabric服务器选择xshell连接
    前置工具Xshell云服务器选择aliyun.com注意:可以免费使用三个月,这里不做介绍,下图是按量付费Xshell连接创建密钥对完成密钥对的绑定ssh<你的服务器公网ip>登录连接成功如何使用password登录前置:需要将上文的操作完成vi/etc/ssh/sshd_config(连接......
  • c语言学习9选择结构
    结构化编程1选择结构九条语句顺序结构:选择结构: Ifelse switchcase循环结构:While for dowhile跳转结构:Break continue gotoreturn顺序结构:体现CPU执行程序运行规则(路径)①程序从上到下执行②程序逐条执行选择结构 ifelse和switchcase  第......
  • 08C++选择结构(2)——教学
    一、逻辑变量教学视频存储类似灯亮或灯灭、是男还是女等结果只有两种可能的数据时,可以使用逻辑型变量。逻辑型变量用关键字bool定义,所以又称为布尔变量,其值只有两个false(假)和true(真),false和true是逻辑常量,又称布尔常量。流程图如下:英汉小词典:bool:布尔false:假true:真二、逻......