编写一个程序,以“yyyymmdd”的形式接受输入的日期信息,并以“yyyy年m

编写一个程序,以“yyyymmdd”的形式接受输入的日期信息,并以“yyyy年m,第1张

首先如果格式为dd/mm/yyyy的日期为date类型,那么很easy,利用simpledateformat类就可以,具体:

simpledateformat

sdt

=

new

simpledateformat()

sdt.setformat("yyyy-mm-dd")//mm一定是大写,小写代表分钟

sdt.format(date)//date就是你得到的那个dd/mm/yyyy的日期

想转换回来就按上面说的把格式转换回来就ok了

如果是string

类型的,那么估计要费事了,你需要不停的用substring()方法把字符串截取拼接,这个应该是最简单的方法了。

有多种排序方法,快排与归并时间复杂度O(nlogn),其它为O(n*n)

一、快速排序

#include<sdtio.h>

#include<stdlib.h>

#define N 100

int A[N]

void quick_sort(int left,int right)

{

int i,j,tmp

if(left>=right)

{

return

}

tmp=A[left]

i=left

j=right

while(i<j)

{

while(i<j&&A[j]>=tmp)

{

j--

}

A[i]=A[j]

while(i<j&&A[i]<=tmp)

{

i++

}

A[j]=A[i]

}

A[i]=tmp

quicksort(left,i-1)

quicksort(i+1,right)

}

int main()

{

......

quicksort(0,N-1)

......

}

二、冒泡排序

#include<stdio.h>

#include<stdlib.h>

#define N 10

int A[N]

void bubble_sort(int A[])

{

int i,j,k

for(i=0i<=N-1i++)

{

for(j=0j<N-i-1j++)

{

if(A[j]>A[j+1])

{

t=A[j]

A[j]=A[j+1]

A[j+1]=t

}

}

}

}

int main()

{

......

bubble_sort(A)

......

}

三、插入排序

#include<stdio.h>

#include<stdlib.h>

#define N 20

int A[N]

void insert_sort(int A[])

{

int i,j,tmp

for(i=1i<N-1i++)

{

tmp=A[i]

j=i-1

while(j>=0&&A[j]>tmp)

{

A[j+1]=A[j]

j--

}

A[j+1]=tmp

}

}

int main()

{

......

insert_sort(A)

......

}

四、选择排序

#include<stdio.h>

#include<stdlib.h>

#define N 20

int A[N]

void select_sort(int A[])

{

int i,j,k,max,pos

for(i=0i<N-1i++)

{

max=-1

for(j=0j<N-ij++)

{

if(A[j]>max)

{

max=A[j]

pos=j

}

}

A[pos]=A[N-i-1]

A[N-i-1]=max

}

}

int main()

{

......

select_sort(A)

......

}

五、归并排序

#include<stdio.h>

#include<stdlib.h>

#define N 20

int A[N],B[N]

viod merge_sort(int left,int right)

{

int i,j,k,m

if(left>=right)

return

else if(right==left+1)

{

A[left]+=A[right]

A[right]=A[left]-A[right]

A[left]=A[left]-A[right]

return

}

m=(left+right)/2

merge_sort(left,m)

merge_sort(m+1,right)

for(i=lefti<=righti++)

{

B[i]=A[i]

}

i=left

j=m+1

k=left

while(i<=m&&j<=right)

{

if(B[i]<=B[j])

{

A[k++]=B[i++]

}

else

{

A[k++]=B[j++]

}

}

while(i<=m)

{

A[k++]=B[i++]

}

while(j<=right)

{

A[k++]=B[j++]

}

}

int main()

{

......

merge_sort(A)

......

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7977933.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存