1.凸包问题
代码:
#include<iostream>
#include<math.h>
#include<stdlib.h>
using namespace std;
typedef struct {
int x;
int y;
int flag;
}tubao;
typedef struct
{
tubao a[10];
int length;
}Point;
Point p;
void ConvexHull()
{
int i;
for(i=0;i<10;i++)
{
cin>>p.a[i].x>>p.a[i].y;
}
int j;
int a=0;
int b=0;
int c=0;
for( i=0;i<10;++i)
for(j=i+1;j<=10;++j)
{
a=p.a[j].y-p.a[i].y;
b=p.a[i].x-p.a[j].x;
c=(p.a[i].x*p.a[j].y)-(p.a[i].y*p.a[j].x);
int s1=0;
int s2=0;
int k;
for(k=0;k<10;k++)
{
if((k==j)||(k==i))continue;
if((a*p.a[k].x+b*p.a[k].y)==c)
{++s1;++s2;}
if((a*p.a[k].x+b*p.a[k].y)>c)
++s1;
if((a*p.a[k].x+b*p.a[k].y)<c)
++s2;
}
if((s1==8)||(s2==8))
{
p.a[i].flag=1;
p.a[j].flag=1;
}
}
cout<<"凸包的点集集合:"<<endl;
for(i=0;i<10;i++)
{
if(p.a[i].flag==1)
{
cout<<"("<<p.a[i].x<<","<<p.a[i].y<<")"<<endl;
}
}
}
int main()
{
ConvexHull();
return 1;
}
截图:
2.编程实现教材3.2小节排序问题中的两个排序算法(选择排序,冒泡排序),要求用函数实现排序算法,主函数中调用。待排序数据用随机数产生(这个过程建议也用一个函数实现。)
选择排序:
import java.util.Random;
public class Xuanze {
public static void main(String[] args) {
int []b=new int[10];
b=array(b);
System.out.print("随机生成的一组数据为:");
print(b);
System.out.println();
System.out.print("排序后的一组数据为:");
sort(b);
print(b);
}
public static int[] array(int[]B)
{
Random random=new Random();
for(int i=0;i<B.length;i++)
{
int t;
t=random.nextInt(100);
B[i]=t;
}
return B;
}
public static void print(int a[])
{
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]);
System.out.print(" ");
}
}
public static void sort(int a[])
{
int min=0;
int temp = 0;
for(int i=0;i<a.length;i++)
{
min=i;
for(int j=i+1;j<a.length;j++)
{
if(a[j]<a[min])
{
min=i;
temp=a[j];
a[j]=a[min];
a[min]=temp;
}
}
}
}
}
截图:
冒泡排序:
import java.util.Random;
public class Maopao {
public static void main(String[] args) {
int []b=new int[10];
b=array(b);
System.out.print("随机生成的一组数据为:");
print(b);
System.out.println();
System.out.print("排序后的一组数据为:");
Sort(b);
print(b);
}
public static int[] array(int[]B)
{
Random random=new Random();
for(int i=0;i<B.length;i++)
{
int t;
t=random.nextInt(100);
B[i]=t;
}
return B;
}
public static void print(int a[])
{
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]);
System.out.print(" ");
}
}
public static void Sort(int []a)
{
for(int i=0;i<a.length;i++)
{
for(int j=0;j<a.length-1-i;j++)
{
if(a[j+1]<a[j])
{
int temp=0;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
}
截图: