public void sort(int[] data) { int temp; for(int i=1; i〈data.length; i++){ for(int j=i; (j〉0)&&(data[j]〉data[j-1]); j--){temp=date[j]; data[j]=data[j-1]; data[j-1]=temp; } } }
public class Test { public static void sort(int[] data) { int temp; for (int i = 1; i < data.length; i++) { for (int j = i; (j > 0) && (data[j] > data[j - 1]); j--) { temp = data[j]; data[j] = data[j - 1]; data[j - 1] = temp; } } } public static void main(String[] args) { int[] b = { 9, 5, 6, 1, 3 }; sort(b); System.out.print(Arrays.toString(b)); } }
//这是插入,楼主不好意思了,偷了下懒,就被别人给坑了。 public class InsertSort { public static void main(String[] args) { insertSort(new int[] { 8, 2, 4, 9, 3, 6, 7, 10 }); } // 辅助函数 public static void dumpArray(int[] a) { for (int index = 0; index < a.length; index++) { System.out.print(a[index] + " "); } System.out.println(""); } public static void insertSort(int[] a) { // 输出原始数组 dumpArray(a); for (int index = 1; index < a.length; index++){ int subIndex = index; int currentData = a[index]; // 等待插入的数据 while ((subIndex > 0) && (a[subIndex - 1] > currentData)) { a[subIndex] = a[subIndex - 1]; subIndex--; } a[subIndex] = currentData; // 插入到合适的位置 // 每次排序后也输出 dumpArray(a); } } }
public class Test { public static void main(String[] args) { String[] a = {"9","5","6","1","3"}; Arrays.sort(a); System.out.println(Arrays.asList(a)); } }Arrays自带方法能将数组自动做排序 结果:[1, 3, 5, 6, 9]
public class Test { public static void sort(int[] data) { for (int i = 1; i < data.length; i++) { int temp = data[i]; int j; for (j = i-1; (j >= 0) && (data[j] < temp); j--) { data[j+1] = data[j]; } data[j+1] = temp; } } public static void main(String[] args) { int[] b = { 9, 5, 6, 1, 3, 3 }; sort(b); System.out.print(Arrays.toString(b)); } }
public class Demo { public static void insert(int[]y) { int i=0,j=0; //定义一个数组长度比y大一,z[0]为哨兵 int []z=new int[y.length+1]; for(i=1;i<=y.length;i++) { z[i]=y[i-1]; } //基本操作,将一个记录插入到已排好序的有序表中,先将序列中的第一个记录看成是一个有序的子序列,然后从第二个记录起逐个进行插入 for( i=2;i<=y.length;i++) { //如果y[i]比它前一个小则把它前面的那个移到y[i]的位置,并将y[i]给a,将a看做哨兵 if(z[i]<z[i-1]) { z[0]=z[i]; z[i]=z[i-1];
public void sort(int[] data) {
int temp;
for(int i=1; i〈data.length; i++){
for(int j=i; (j〉0)&&(data[j]〉data[j-1]); j--){temp=date[j];
data[j]=data[j-1];
data[j-1]=temp;
}
}
}
public class Test {
public static void sort(int[] data) {
int temp;
for (int i = 1; i < data.length; i++) {
for (int j = i; (j > 0) && (data[j] > data[j - 1]); j--) {
temp = data[j];
data[j] = data[j - 1];
data[j - 1] = temp;
}
}
} public static void main(String[] args) {
int[] b = { 9, 5, 6, 1, 3 };
sort(b);
System.out.print(Arrays.toString(b));
}
}
//这是插入,楼主不好意思了,偷了下懒,就被别人给坑了。
public class InsertSort {
public static void main(String[] args) {
insertSort(new int[] { 8, 2, 4, 9, 3, 6, 7, 10 });
} // 辅助函数
public static void dumpArray(int[] a) {
for (int index = 0; index < a.length; index++) {
System.out.print(a[index] + " ");
}
System.out.println("");
} public static void insertSort(int[] a) {
// 输出原始数组
dumpArray(a);
for (int index = 1; index < a.length; index++){
int subIndex = index;
int currentData = a[index]; // 等待插入的数据
while ((subIndex > 0) && (a[subIndex - 1] > currentData)) {
a[subIndex] = a[subIndex - 1];
subIndex--;
}
a[subIndex] = currentData; // 插入到合适的位置
// 每次排序后也输出
dumpArray(a);
}
}
}
public static void main(String[] args) {
String[] a = {"9","5","6","1","3"};
Arrays.sort(a);
System.out.println(Arrays.asList(a));
}
}Arrays自带方法能将数组自动做排序
结果:[1, 3, 5, 6, 9]
public class Test {
public static void sort(int[] data) {
for (int i = 1; i < data.length; i++) {
int temp = data[i];
int j;
for (j = i-1; (j >= 0) && (data[j] < temp); j--) {
data[j+1] = data[j];
}
data[j+1] = temp;
}
} public static void main(String[] args) {
int[] b = { 9, 5, 6, 1, 3, 3 };
sort(b);
System.out.print(Arrays.toString(b));
}
}
public static void insert(int[]y)
{
int i=0,j=0;
//定义一个数组长度比y大一,z[0]为哨兵
int []z=new int[y.length+1];
for(i=1;i<=y.length;i++)
{
z[i]=y[i-1];
}
//基本操作,将一个记录插入到已排好序的有序表中,先将序列中的第一个记录看成是一个有序的子序列,然后从第二个记录起逐个进行插入
for( i=2;i<=y.length;i++)
{
//如果y[i]比它前一个小则把它前面的那个移到y[i]的位置,并将y[i]给a,将a看做哨兵
if(z[i]<z[i-1])
{
z[0]=z[i];
z[i]=z[i-1];
for(j=i-2;z[j]>z[0];j--)
z[j+1]=z[j];//记录后移
z[j+1]=z[0];//插入到正确位置
}
}
for(i=1;i<=y.length;i++)
{
System.out.println(z[i]);
}
}
public static void main(String[] args) {
int []y={9,5,6,1,3};
insert(y);
}}
{
int i,j;
//从数组的第二位开始进行插入
for(i = 1 ; i < n ; i ++)
{
int temp = Arr[i];//记录当前的值
j = i - 1;//把j赋值成待插入数据的前一位的索引
while(j >= 0 && temp < Arr[j])
{//如果temp小于前面的值,前面的值就向后移位
Arr[j + 1] = Arr[j];
j --;
}
//最后把值赋给该值的适当位置
Arr[j + 1] = temp;
}
}