自写归并排序和调用系统排序方法,C++

#include<iostream>
#include<stdlib.h>
#include<malloc.h>
#include<algorithm>
#include<ctime>
#define length 10
using namespace std;
bool compare(int a, int b)
{
return a > b;
}
void mergeSorted(int *array, int start, int end);
int main()
{
srand(time(NULL));
int* array;
array = (int *)malloc(sizeof(int) * length);
for (int i = 0;i < length; i++)
{
array[i] = rand()%100;
cout<<array[i]<<" ";
}
cout<<endl;
//调用系统自带排序函数
sort(array, array+10, compare);
cout<<"result: "<<endl;
for (int i = 0;i < length; i++)
{
cout<<array[i]<<" ";
}
cout<<endl;
mergeSorted(array,0,length);

return 0;
}
void mergeSorted(int *array,int start, int end)
{
if (end - start <= 1)
{
return;
}
int mid = (end + start)/2;
mergeSorted(array,start, mid);
mergeSorted(array, mid, end);
//第一半的第一个开始,后面的只可能比j之前的大,不可能比j之前的小
int j = 0;
//从后一半的一个出发
for (int i = mid; i < end; i++)
{
for (;j < mid; j++)
{
if (array[i] < array[j])
{
//移位
int temp = array[i];
for (int i1 = i; i1 > j ;)
{
array[i1] = array[--i1];
}
array[j] = temp;
}
}
}
}

时间: 2024-11-05 12:08:44

自写归并排序和调用系统排序方法,C++的相关文章

JAVA程序 写供别人调用的接口方法的时候 异常应该怎么处理?

要看出现的是哪种异常了.如果是使用某些定义好的函数,并且函数本身会产生异常处理方法一般两种:1.自己用try{}catch(){}语句捕获异常并处理.2.在定义接口的后面写上throw Exception.把异常抛出让使用接口的人处理异常.两种方法都可以.但如果是RuntimeException异常,那就是自己程序某些地方写错了,那你就必须找到并修改程序.JAVA程序 写供别人调用的接口方法的时候 异常应该怎么处理?,布布扣,bubuko.com

【学习ios之路:Objective-C】OC中常用的系统排序方法

①.OC中常用排序方法: 1).不可变数组 - (NSArray *)sortedArrayUsingSelector:(SEL)comparator; - (NSArray *)sortedArrayUsingComparator:(NSComparator)cmptr; 2)可变数组 - (void)sortUsingSelector:(SEL)comparator; - (void)sortUsingComparator:(NSComparator)cmptr; 3).字典排序 - (NS

下载文件 ,调用系统的方法(UIDocumentInteractionController) 查看

1.首先我们如果要做这个效果就要知道这个(UIDocumentInteractionController) _docController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0] stringByAp

安卓 调用系统相册并裁剪

上一篇写了关于调用系统相机并裁剪,这一片写关于调用系统相册裁剪照片 btn_album.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent; logoTempPath = LOGO_BASE_PATH + System.currentTimeMillis() + ".png"; intent = new Intent(Intent.ACTION_

Android Camera 使用小结。两种方法:一是调用系统camera app,二是自己写camera程序。

源文链接:http://www.cnblogs.com/franksunny/archive/2011/11/17/2252926.html Android Camera 使用小结 Android手机关于Camera的使用,一是拍照,二是摄像,由于Android提供了强大的组件功能,为此对于在Android手机系统上进行Camera的开发,我们可以使用两类方法:一是借助Intent和MediaStroe调用系统Camera App程序来实现拍照和摄像功能,二是根据Camera API自写Came

深入理解苹果系统(Unicode)字符串的排序方法

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由iminder发表于云+社区专栏 Unicode编码 我们知道计算机是不能直接处理文本的,而是和数字打交道.因此,为了表示文本,就建立了一个字符到数字的映射表,叫做编码.最著名的字符编码就是ASCII了,它使用7-bit来表示应用字母表以及数字和其他字符.这对于英语来说是够用了,但是对于其他语言,这个7-bit就不能满足条件了,因为字符远远超过了7-bit所能表示的最大个数.因此1987年,来自几个大的科技公司的工程师开始合作开发

Android 调用系统相机拍照保存以及调用系统相册的方法

系统已经有的东西,如果我们没有新的需求的话,直接调用是最直接的.下面讲讲调用系统相机拍照并保存图片和如何调用系统相册的方法. 首先看看调用系统相机的核心方法: Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(camera, CAMERA); 相机返回的数据通过下面的回调方法取得,并处理: public static final int CAMERA  = 0x01; @Over

嵌入式系统烧写uboot/bootloader/kernel的一般方法

本文介绍了在嵌入式系统中烧写uboot/bootloader/kernel 的一般方法,以及如果uboot或者内核出现错误,  www.2cto.com 引导失败等情况时如何重新烧写uboot/kernel. 烧写uboot/kernel的方式一般有两种,一种是在linux本身(shell中),直接将uboot/kernel的影像文件(二进制文件)使用操作烧写flash的命令烧写到flash特定分区上, 另一种是在uboot界面上,通过配置serverip,ipaddr,使用tftp命令下载ub

IOS总结_IOS经常使用的方法集合、调用系统电话、设备区分、APP内永不锁屏

调用系统打电话的功能 打电话功能仅仅有iPhone支持,对于其它设备相应button应该禁用. //直接调用系统电话呼叫功能,挂断电话后不能回到应用程序 [UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://8004664411"]; //调用系统电话呼叫功能前要给出提示,挂断电话后能回到应用程序 [UIApplication sharedApplication] openURL:[NSURL UR