算法笔记记录01

冒泡排序和选择排序


算法笔记

算法笔记及自我总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、冒泡排序

C++版

#include<iostream>
using namespace std;
void BubbleSort(int* arr,int n)
{
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < i; j++)
		{
			if (arr[i] < arr[j])
			{
				int temp = arr[i];
				arr[i] = arr[j];
				arr[j] = temp;
			}
		}
	}
}
void Print(int *arr,int n)
{
	cout << "排序后:" << endl;
	for (int i = 0; i < n; i++)
	{
		cout << arr[i] << " ";
	}
}
int main()
{
	int n;
	cin >> n;
	int arr[] = { 5,3,2,4,0,1,6,9,7,8 };
	BubbleSort(arr, n);
	Print(arr, n);
	system("pause");
	return 0;
}

Python版

list = [0,3,5,6,4,8,9,2,1,7]
def Bubble_Sort(list):
    for i in range(len(list)):
        for j in range(i,len(list)):
            if (list[i]>list[j]):
                a = list[i]
                list[i] = list[j]
                list[j] = a
Bubble_Sort(list)
print('排序后:')
print(list)

二、选择排序

C++版

#include<iostream>
using namespace std;
void SelectSort(int *arr, int n)
{
	for (int i = 0; i < n; i++)
	{
		for (int j = i; j < n; j++)
		{
		//先假设设置数组最小的数字的序号为min
			int min = i;
		/*
		由于每次循环外循环遍历一个数,内循环遍历一整个
		(例如:外循环i = 0时,内循环完成一整个循环j=0,1,2,3.....)
		所以当内循环的序号数的数组值小于外循环的时,交换序号
		(这一段的用意是找整个数组的最小值)
		*/
			if (arr[j] < arr[min])
			{
				min = j;
			}
		//当min不等于i时,调换数组的值(相当于把数组最小值调换到最左边)
			if (min != i)
			{
				swap(arr[i], arr[min]);
			}
		}
	}
}
void Print(int* arr, int n)
{
	cout << "排序后:" << endl;
	for (int i = 0; i < n; i++)
	{
		cout << arr[i] << " ";
	}
}
int main()
{
	int n,arr[20],temp;
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> temp;
		arr[i] = temp;
	}
	SelectSort(arr, n);
	Print(arr, n);
	system("pause");
	return 0;
}

Python版

List = list(map(int,input("输入用空格分隔的数字:").split()))
# list = [0,3,5,6,4,8,9,2,1,7]
def Select_Sort(List):
    for i in range(len(List)):
        for j in range(i,len(List)):
            min = i
            if (List[j]<List[min]):
                min = j
            if (min != i):
                a = List[i]
                List[i] = List[j]
                List[j] = a
Select_Sort(List)
print('排序后:')
print(List)

总结

冒泡排序没啥好讲的;选择排序:要注意排序方法和循环的运用,以及数组写入怎么用,还有一个C++中的swap函数:交换函数。

Swap函数
好处:不用担心交换变量精度的缺失,无需构造临时变量,不会增加空间复杂度
swap 包含在命名空间std 里面
swap(a,b);(交换两个数)
swap(a[i] = b[j]);(交换两个位置上的变量)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值