排序深究

归并排序

#include<stdio.h>
int a[10000],a2[10000];//序列和临时序列,
//临时序列存储在合并过程已经排序好的数列,然后存储给序列 
void Merge(int sta,int mid,int end){
	int k=0;//k等于0或i都可以,如果随便就会发生越界
	int i;
	i=sta;
	int j;
	j=mid+1;
	while(i<=mid&&j<=end){
		if(a[i]<a[j]){//把'>'换成'<'就会变成降序序列 
			a2[k++]=a[i++];
		}
		else{
			a2[k++]=a[j++];
		}
	}
	while(i<=mid){//把两数组未排序的部分放入,这两个while只会执行一个 
		a2[k++]=a[i++];
	}
	while(j<=end){
		a2[k++]=a[j++];
	}
	for(i=sta,j=0;j<k;i++,j++){
		a[i]=a2[j];//把临时数组拷贝到数组 
	}	
}

void Mergesort(int sta,int end){
	if(sta==end){//当相等时说明已经分到长度为一的序列子表 
		return ;
	}
	else 
	{
		int mid=(sta+end)/2;
		Mergesort(sta,mid);//左边序列进行递归 
		Mergesort(mid+1,end);//右边序列进行递归 
		Merge(sta,mid,end);//序列合并 
	} 
}

int main()
{
	int total;
	scanf("%d",&total);
	for(int i=0;i<total;i++){
		scanf("%d",&a[i]);
	} 
	Mergesort(0,total-1); 
	for(int i=0;i<total;i++){
		printf("%d ",a[i]);
	}
	return 0;
}

快速排序

#include<stdio.h>
int a[10000];
int Parition(int low,int high){
	int pivot=a[low];//寻找数作为基准 
	while(low<high){
		while(low<high&&a[high]>=pivot){//从右寻找比基准小的数 
			high--;
		}
		a[low]=a[high];
		while(low<high&&a[low]<=pivot){//从左寻找比基准大的数 
			low++;
		}
		a[high]=a[low]; 
	}	
	a[low]=pivot;//基准值分区 
	return low;//返回基准的位置作为分界 
}

void Quicksort(int low,int high) 
{
	if(low<high){
		int pivot=Parition(low,high); 
		Quicksort(low,pivot);
		Quicksort(pivot+1,high);
	}
}

int main()
{
	int total;
	scanf("%d",&total);
	for(int i=0;i<total;i++){
		scanf("%d",&a[i]);
	}	
	Quicksort(0,total-1);
	for(int i=0;i<total;i++){
		printf("%d ",a[i]);
	}
	return 0;
}

排序函数sort

#include<iostream> 
#include<algorithm>
#include<stdio.h>
using namespace std;
int a[10000];
int comp(int a,int b){//比较函数 
	return a>b;
}
int main()
{
	int total;cin>>total;
	for(int i=0;i<total;i++){
		cin>>a[i];
	}
	sort(a,a+total);//默认为递增序排序 a表示起始数组 a+total表示数组结束地址的下一位 
	for(int i=0;i<total;i++){
		printf("%d ",a[i]);
	}
	printf("\n");
	sort(a,a+total,comp);//加上比较函数,递减序列排序 
	for(int i=0;i<total;i++){
		printf("%d ",a[i]); 
	}
	return 0;
}
安卓安全架构是指为了保护安卓设备和应用程序的安全性而制定的一系列安全措施和机制。它的设计目标是确保设备和用户的数据安全,防范恶意软件和黑客攻击,保护用户的隐私。 安卓安全架构主要包括以下几个方面: 1. 应用程序的权限管理:安卓系统通过权限管理机制,对于每个应用程序都有一定的权限限制,只有获得用户授权才能访问敏感数据和设备功能。这样可以避免恶意应用程序获取用户隐私和滥用设备功能。 2. 应用程序的沙箱机制:安卓系统中,每个应用程序都运行在独立的沙箱环境中,相互之间不能直接访问彼此的数据和资源。这样一来,即使有恶意应用程序存在,也不会对其他应用程序或系统造成影响。 3. 安全更新和修复机制:安卓系统提供定期的安全更新和修复补丁,及时解决已知的安全漏洞和问题。用户可以通过更新系统来获取最新的安全保护,保持设备的安全性。 4. 安全启动和认证机制:安卓系统在启动过程中会对系统进行完整性验证和数字签名验证,确保系统和启动过程的安全性。同时,还支持设备锁屏、指纹识别等认证方式,保护用户的设备免受未经授权的访问。 5. 应用程序的代码审查和审核:Google Play商店对应用程序进行代码审查和审核,以确保应用程序不包含恶意代码和潜在的安全风险。这样一来,用户可以更加放心地从Google Play商店下载和安装应用程序。 总体来说,安卓安全架构通过多重层次的保护机制,保障了用户设备和数据的安全。然而,由于安卓系统的开放性和广泛应用于不同厂商设备上,也使得安卓面临来自恶意应用程序、网络攻击和系统漏洞等多种安全风险。因此,用户在使用安卓设备时,仍需保持警惕并采取一系列的安全措施来保护自己的设备和数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值