Java实现排序算法
- 选择排序
package test;
publicclassSelectSort{
publicstaticvoid selectSort(int a[]){
int temp=0;
int flag=0;
int n=a.length;
for(int i=0;i<n;i++){
temp=a[i];//最开始最小位置为第一个位置
flag=i;
for(int j=i+1;j<n;j++){//找到最小位置 最小位置为temp
if(a[j]<temp){
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
if(flag!=i){//将最小值temp与第一个值交换
a[flag]=a[i];
a[i]=temp;
}
}
}
publicstaticvoid main(String[] args){
int a[]={5,3,6,7,2,1,10,22,90};
selectSort(a);
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
System.out.println();
}
}
- 插入排序
package test;
publicclassInsertSort{
publicstaticvoid insertSort(int[]a){
if(a!=null){
for(int i =1; i < a.length; i++){
int temp=a[i];
int j=i;
if(a[j-1]>temp){//从后向前插入temp
while(j>=1&&a[j-1]>temp){
a[j]=a[j-1];//插入位置后移
j--;
}
}
a[j]=temp;
}
}
}
publicstaticvoid main(String[] args){
int a[]={5,3,6,7,2,1,10,22,90};
insertSort(a);
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
System.out.println();
}
}
- 冒泡排序
package test;
publicclassBubbleSort{
publicstaticvoid bubbleSort(int a[]){
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){//如果后一个数小于前一个数交换
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
publicstaticvoid main(String[] args){
int a[]={5,3,6,7,2,1,10,22,90};
bubbleSort(a);
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
System.out.println();
}
}
②把左区作为一个整体,用①的步骤进行处理,右区进行相同的处理。(即递归)
③重复第①、②步,直到左区处理完毕。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。