直接插入排序
public static void main(String[] args) {
int[] nums=new int[]{49,38,65,97,76,13,27,49};
sort(nums);
for (int num : nums) {
System.out.print(num+" ");
}
}
public static void sort(int[] nums){
int j;
for(int i=1;i<nums.length;i++){
if(nums[i]<nums[i-1]){
int temp=nums[i];
for(j=i-1;j>=0&&nums[j]>temp;j--)
nums[j+1]=nums[j];
nums[j+1]=temp;
}
}
}
折半插入排序
public static void main(String[] args) {
int[] nums=new int[]{49,38,65,97,76,13,27,49};
sort(nums);
for (int num : nums) {
System.out.print(num+" ");
}
}
public static void sort(int[] nums){
for(int i=1;i<nums.length;i++){
int high=i-1,low=0;
int temp=nums[i];
while (low<=high){
int mid=(high+low)/2;
if(nums[mid]>temp)
high=mid-1;
else
low=mid+1;
}
for(int j=i-1;j>=high+1;j--)
nums[j+1]=nums[j];
nums[high+1]=temp;
}
}
冒泡排序
public static void main(String[] args) {
int[] nums=new int[]{49,38,65,97,76,13,27,49};
sort(nums);
for (int num : nums) {
System.out.print(num+" ");
}
}
public static void sort(int[] nums){
for(int i=0;i<nums.length;i++){
for(int j=nums.length-1;j>i;j--){
if(nums[j-1]>nums[j]){
int temp=nums[j];
nums[j]=nums[j-1];
nums[j-1]=temp;
}
}
}
}
快速排序
public static void main(String[] args) {
int[] nums=new int[]{49,38,65,97,76,13,27,49};
sort(nums,0,nums.length-1);
for (int num : nums) {
System.out.print(num+" ");
}
}
public static void sort(int[] nums,int low,int high){
if(low<high){
int partition = Partition(nums, low, high);
sort(nums,low,partition-1);
sort(nums,partition+1,high);
}
}
static int Partition(int[] nums,int low,int high){
int k=nums[low];
while (low<high){
while (low<high&&nums[high]>=k)
high--;
nums[low]=nums[high];
while (low<high&&nums[low]<=k)
low++;
nums[high]=nums[low];
}
nums[low]=k;
return low;
}
简单选择排序
public static void main(String[] args) {
int[] nums=new int[]{49,38,65,97,76,13,27,49};
sort(nums);
for (int num : nums) {
System.out.print(num+" ");
}
}
public static void sort(int[] nums){
for(int i=0;i<nums.length;i++){
int min=i;
for(int j=i+1;j<nums.length;j++)
{
if(nums[j]<nums[i])
min=j;
}
if(min!=i){
int temp=nums[min];
nums[min]=nums[i];
nums[i]=temp;
}
}
}