概述
直接插入排序
将一个记录插入到已经排好序的有序表中,从而得到一个新的有序表。通俗理解,我们首先将序列分成两个区间,有序区间和无序区间,我们每次在无序区间内取一个值,在已排序区间中找到合适的插入位置将其插入,并保证已排序区间一直有序。
class Zjcrpx{
public static int [] sortArray(int [] arr){
//
for (int i =1;i<arr.length ;i++ ) {
int temp = arr[i];//保存起来,否则后面移动位置会被覆盖
for(int j = 0;j<i;j++){
if(arr[j]>arr[i]){
//从索引j到i-1都向后移动一位,原来索引j位置为temp
for(int k =i-1;k>=j;k--){
arr[k+1]=arr[k];
}
arr[j] = temp;
}
}
}
return arr;
}
public static void main(String[] args) {
int [] arr = {6,9,7,10,4,9,1,12};
sortArray(arr);
for (int c :arr ) {
System.out.print(c+" ");
}
}
}
交换位置法
class Crpx{
public static void main(String[] args) {
int [] arr = {2,6,3,1,8,3,8};
int [] sort_arr =Charu(arr);
for (int c :sort_arr ) {
System.out.print(c+" ");
}
}
public static int [] Charu(int [] arr){
for (int i =0;i<arr.length ;i++ ) {
for(int j = i;j>0;j--){
if(arr[j-1]>arr[j]){
swap(arr,j,j-1);
}else{
break;
}
}
}
return arr;
}
public static void swap(int [] arr,int i ,int j){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
最后
以上就是碧蓝路灯为你收集整理的直接插入排序(Straight Insertion Sort)的全部内容,希望文章能够帮你解决直接插入排序(Straight Insertion Sort)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复