1、冒泡排序
package sort;
public class Bubble_Sort {
public static void main(String[] args) {
int[] nums={6,5,4,3,1,2};
int n=nums.length;
boolean flag=false;
for (int i=0;i<n;i++){
for (int j=i+1;j<n;j++){
if (nums[i]>nums[j]){
int temp=nums[i];
nums[i]=nums[j];
nums[j]=temp;
flag=true;
}
}
if (!flag){
break;
}
}
for (int k:nums){
System.out.println(k);
}
}
}
2、选择排序
package sort;
public class Selection_Sort {
public static void main(String[] args) {
int[] nums={1,3,5,2,6};
int n=nums.length;
for(int i=0;i<n;i++){
int k=i;
for (int j=i+1;j<n;j++){
if (nums[j]<nums[k]){
k=j;
}
}
if (k>i){
int t=nums[i];
nums[i]=nums[k];
nums[k]=t;
}
}
for (int l:nums){
System.out.println(l);
}
}
}
3、插入排序
package sort;
public class Insertion_Sort {
public static void main(String[] args) {
int[] nums={1,5,6,4,2,3};
int n=nums.length;
if (n==1){
return;
}
for (int i=1;i<n;i++){
int v=nums[i];
int j=i-1;
for (;j>=0;j--){
if (nums[j]>v){
nums[j+1]=nums[j];
}else
break;
}
nums[j+1]=v;
}
for (int i:nums){
System.out.println(i);
}
}
}
4、归并排序
package sort;
public class Merge_Sort {
public static void main(String[] args) {
int[] nums={1,3,2,4,6,5};
int n = nums.length;
mergesort(nums,0,n-1);
for (int i:nums){
System.out.println(i);
}
}
static void mergesort(int[] nums,int start,int end){
if (start<end){
int mid=(start+end)/2;
mergesort(nums,start,mid);
mergesort(nums,mid+1,end);
merge(nums,start,mid,end);
}
}
static void merge(int[] nums,int start,int mid,int end){
int i=start;
int j=mid+1;
int k=start;
int [] temp=new int[nums.length];
while (i<=mid&&j<=end){
if(nums[i]<nums[j]){
temp[k++]=nums[i++];
}
else
temp[k++]=nums[j++];
}
while (i<=mid){
temp[k++]=nums[i++];
}
while (j<=end){
temp[k++]=nums[j++];
}
for (int t=start;t<=end;t++){
nums[t]=temp[t];
}
}
}
5、快速排序
package sort;
public class Quick_sort {
public static void main(String[] args) {
int[] nums={1,3,4,6,5,2};
int n=nums.length;
quicksort(nums,0,n-1);
for (int i:nums){
System.out.println(i);
}
}
private static void quicksort(int[] nums,int start,int end){
if(start<end){
int mid=quickhelp(nums,start,end);
quicksort(nums,start,mid-1);
quicksort(nums,mid+1,end);
}
}
private static int quickhelp(int[] nums,int start,int end){
int temp=nums[start];
while (start<end){
while (start<end&&nums[end]>=temp){
end--;
}
nums[start]=nums[end];
while (start<end&&nums[start]<=temp){
start++;
}
nums[end]=nums[start];
}
nums[start]=temp;
return start;
}
}