0
点赞
收藏
分享

微信扫一扫

冒泡排序 选择排序 插入排序(还在看什么~~点进来学啊,说的就是你)

中间件小哥 2022-04-14 阅读 50

目录

1.冒泡排序

(1)思路

(2)代码

(3)冒泡排序代码实现

2.选择排序

(1)思路

(2)代码

(3)代码实现

3.插入排序

(1)思路

(2)代码

(3)代码实现


1.冒泡排序

(1)思路

(2)代码

#include<stdio.h>
int main()
{
	int temp = 0;
	int arr[15] = { 9,4,7,3,2,1,0,5,6,8,-99,-1,5,888,77 };
    //第一层循环,控制趟数
	for (int i = 0; i < 15; i++)
	{    
        //第二层循环,控制次数
		for (int j = 0; j < 15-1; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				//{
				//	arr[j] = arr[j] ^ arr[j + 1];
				//	arr[j+1] = arr[j] ^ arr[j + 1];    第一种方法异或
				//	arr[j] = arr[j] ^ arr[j + 1];

				//arr[j] = arr[j] + arr[j + 1];
				//arr[j + 1] = arr[j] - arr[j + 1];    第二种方法加减
				//arr[j] = arr[j] + arr[j + 1];

			temp = arr[j];
			arr[j] = arr[j + 1];        第三种方法变量
			arr[j + 1] = temp;
			}
		}
	}
	for (int i = 0; i < 15; i++)
	{
		printf("%-2d ", arr[i]);    //打印
	}
	return 0;
}

(3)冒泡排序代码实现

 

2.选择排序

(1)思路

(2)代码

#include<stdio.h>
int main()
{
	int maxIndex = 0;
	int temp = 0;
	int arr[10] = { 6,4,8,3,2,9,0,1,5,7 };
	for (int i = 9; i > 0; i--)
	{
		maxIndex = 0;
		for (int j = 0; j <=i; j++)
		{
			if (arr[maxIndex] < arr[j])
			{
				maxIndex = j;
			}
		}
		if (maxIndex != i)
		{
			temp = arr[maxIndex];
			arr[maxIndex] = arr[i];
			arr[i] = temp;
		}
	}
	for (size_t i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

(3)代码实现

 

3.插入排序

(1)思路

(2)代码

#include<stdio.h>
int main()
{
	//定义一个未序一维数组
	int arr[10] = { 8,5,1,0,3,2,7,6,4,-1 };
	//插入排序
	int temp = 0;
	//外层循环:进行9次
	for (int i = 1; i < 10; i++)
	{
		//内层循环:arr[i]
		for (int j = i - 1; j >= 0; j--)
		{
			if (arr[j + 1] < arr[j])
			{
				temp = arr[j + 1];
				arr[j + 1] = arr[j];
				arr[j] = temp;
			}
			else
			{
				break;
			}
		}
	}
	for (int i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

(3)代码实现

 

今天的分享就到这里啦!~

都是在认真的分析和解题,希望分享的知识能够得到你的认可,学会了就点个赞吧!~

我是Try_harder,正在磕磕绊绊中成长~~

 

 

举报

相关推荐

0 条评论