$ ./a.out facesho Google Facebook
运行输出:[INFO,faceshoGoogleFacebook]
1563C 排序算法
有种排序叫做猴子排序(Bogo Monkey):
1、检查是否排好
2、打乱
3、检查是否排好
4、打乱
5、……
如果数据稍多的话,几乎是不可能排序好的。
排序代码:
#include <time.h>
#include <stdlib.h>
#include <stdbool.h>
void swap(int* x, int* y){
//交换
int temporary = *x;
*x = *y;
*y = temporary;
}
void randomize(int arr[], int length){
//打乱数组
for(int i = 0; i < length; i++){
srand(time(NULL)+i);//引入i增加随机性
if(rand()%2) swap(&arr[i],&arr[i+1]);
}
//printf("!");//记录打乱次数
}
bool isSorted(int arr[], int length){
for(int i = 0; i < length; i++) if(arr[i]>=arr[i+1]) return false;
return true;
}
void bogoSort(int array[], int length){
while(!isSorted(array,length)) randomize(array,length);
}
Demo:
#include <stdio.h>
int main(){
int numbers[] = {20,9,233,0,-23,7,1,666,4,345,63,45,2,45};
bogoSort(numbers,14);//也可以改成更小
for(int i = 0; i < 14; i++) printf("%d,",numbers[i]);
}
1562C 排序算法
1. 希尔排序缩小递增量必须是要互质的。
2. 快速排序可以不用交换中间值。
以下代码仅供参考:
void Array_Map_Sort_Quickly_Extrem(int* Array, int start, int end)
{
int i=start;
int j=end;
int Pivot = Array[end];
if(start<end)
{
while(i<j)
{
while(i<j &&Array[i]<=Pivot) i++;//Note: i choose the end as parameter
Array[j]=Array[i];
while(i<j &&Array[j]>=Pivot) j--;
Array[i]=Array[j];
}
Array[i]= Pivot;
}
else
return;
Array_Map_Sort_Quickly_Extrem(Array,start,i-1);
Array_Map_Sort_Quickly_Extrem(Array,i+1,end);
}
1561C 命令行参数
main 的两个参数的参数名如下:
int main( int argc, char *argv[] )
并不一定这样写,只是约定俗成罢了。但是亦可以写成下面这样:
int main( int test_argc, char *test_argv[] )
任意你喜欢的名字。
但是大部分人还是写成开头那样的,如下:
int main( int argc, char *argv[] )
1560C 内存管理
对于我们手动分配的内存,在 C 语言中是不用强制转换类型的。
description = malloc( 200 * sizeof(char) ); // C 语言正确。
description = malloc( 200 * sizeof(char) ); // C++ 错误
1564C 标准库 - stdarg.h
变参使用实例 test.c:
编译 gcc test.c 得到 a.out。
运行程序:
1563C 排序算法
有种排序叫做猴子排序(Bogo Monkey):
如果数据稍多的话,几乎是不可能排序好的。
排序代码:
Demo:
1562C 排序算法
1. 希尔排序缩小递增量必须是要互质的。
2. 快速排序可以不用交换中间值。
以下代码仅供参考:
1561C 命令行参数
main 的两个参数的参数名如下:
并不一定这样写,只是约定俗成罢了。但是亦可以写成下面这样:
任意你喜欢的名字。
但是大部分人还是写成开头那样的,如下:
1560C 内存管理
对于我们手动分配的内存,在 C 语言中是不用强制转换类型的。
但是 C++ 是强制要求的,不然会报错。