RT,谁帮忙优化下,特别是处理r[-1]的那段,看着有点别扭
public class Test1 {
/**
* 插入排序
* @param args
*/
public static void main(String[] args) {
int[] r = new int[10];
int i,j,t;
boolean bool;
for(i=0;i<r.length;i++) {
r[i] = (int)(Math.random()*100);
}
for(i=0;i<r.length;i++) {
System.out.print(r[i]+" ");
}
for(i=1;i<r.length;i++) {
t = r[i];
bool = false;
for(j=i-1;t<r[j];j--){ //考虑j=-1,r[-1]时,报错
r[j+1] = r[j];
bool = true;
if(j==0) break;
if(t>=r[j-1]) break;
}
if(bool) r[j] = t;
}
System.out.println("\nAfter change:");
for(i=0;i<r.length;i++) {
System.out.print(r[i]+" ");
}
}
}
public class Test1 {
/**
* 插入排序
* @param args
*/
public static void main(String[] args) {
int[] r = new int[10];
int i,j,t;
boolean bool;
for(i=0;i<r.length;i++) {
r[i] = (int)(Math.random()*100);
}
for(i=0;i<r.length;i++) {
System.out.print(r[i]+" ");
}
for(i=1;i<r.length;i++) {
t = r[i];
bool = false;
for(j=i-1;t<r[j];j--){ //考虑j=-1,r[-1]时,报错
r[j+1] = r[j];
bool = true;
if(j==0) break;
if(t>=r[j-1]) break;
}
if(bool) r[j] = t;
}
System.out.println("\nAfter change:");
for(i=0;i<r.length;i++) {
System.out.print(r[i]+" ");
}
}
}
{
public static void main(String[] args)
{
int a[]={1,5,3,8,2,7,6,4,9};
insertSort(a);
for(int i=0;i<a.length;i++)
{
System.out.println(a[i]);
}
}
public static void insertSort(int[] a)
{
for(int i=1;i<a.length;i++)
{
for(int j=i;j>0;j--)
{
if(a[j]<a[j-1])
{
int temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}else
{
break;
}
}
}
}
}
此方法是冒泡排序法
for (i = 0; i < r.length; i++) {
for (j = i; j < r.length; j++) {
if (r[i] > r[j]) {
r[i] = r[j] + (r[j] = r[i]) * 0;
}
}
}
public static void main(String[] args) {
int n = 6;
int a,b,d,e;
int[] c = new int[n + 1];
a = 9;//要插入的数
for (int i = 0; i < n; i++) {
c[i] = (int) (Math.random() * 100);
}
for (b=0;b<n;b++)
{ if (c[b]==a)
break;
}
if (b==n)
{
for (b=0;b<n;b++)
{
if (c[b]>a)
break;
}
for (d=n;d>b;d--)
{
c[d]=c[d-1];
}
c[d]=a;
for (d=0;d<n+1;d++){
System.out.print(c[d]);
System.out.println("\n");
}
}
else
{
for (e=b;e<n-1;e++)
c[e]=c[e+1];
for (e=0;e<n-1;e++)
System.out.println(c[e]);
System.out.println("\n");
}
}我大1 时写的,看看
不知道有帮助嘛
^_*
int t;
int i, j; for (i = 1; i < array.length; i++) {
if (array[i] < array[i-1]) {
for (j = i; j >= 1; j--) {
if (array[j] < array[j-1]) {
t = array[j-1];
array[j-1] = array[j];
array[j] = t;
}
}
}
}
/**
* 插入排序
* @param args
*/
public static void main(String[] args) {
int[] r = new int[10];
int i,j,temp;
for(i=0;i<r.length;i++) {
r[i] = (int)(Math.random()*100);
}
for(i=0;i<r.length;i++) {
System.out.print(r[i]+" ");
}
for(i=1;i<r.length;i++) {
temp = r[i];
j=i-1;
while(j>=0&&temp<r[j]){
r[j+1]=r[j--];
r[j+1]=temp;
}
}
System.out.println("\nAfter change:");
for(i=0;i<r.length;i++) {
System.out.print(r[i]+" ");
}
}
}