c语言实现:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int n,i,key,j;
printf("请输入:n\n");
scanf("%d",&n);
int num[n];
printf("排序之前的数组:\n");
for(i=0;i<n;i++) {
//产生1--->10的随机数,产生0-9的随机数rand()%10,10=9-0+1;
//a->b rand()%(b-a)+a
num[i] = rand()%10+1;
printf("%d ",num[i]);
}
printf("\n");
//进行排序
for(i=1;i<n;i++) {
key = num[i];
j = i-1;
while(j>=0&&num[j]>key) {
num[j+1] = num[j];
j = j-1;
}
num[j+1] = key;
}
printf("排序之后的数组:\n");
for(i=0; i<n; i++) {
printf("%d ",num[i]);
}
return 0;
}
Java实现
package com.insertsort;
import java.util.Random;
import java.util.Scanner;
public class test1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner fin = new Scanner(System.in);
System.out.println("请输入n:");
int n = fin.nextInt();
int j,key;
int[] num = new int[n];
System.out.println("排序之前的数组:");
for(int i=0; i<n; i++) {
//num[i] = (int)(Math.random()*10)+1;
num[i] = new Random().nextInt(10);
System.out.print(num[i]);
System.out.print(" ");
}
System.out.println();
//开始排序
for(int i=1; i<n; i++) {
key = num[i];
j = i-1;
while(j>=0 && num[j]>key) {
num[j+1] = num[j];
j = j-1;
}
num[j+1] = key;
}
System.out.println("排序之后的数组:");
for(int i=0; i<n; i++) {
System.out.print(num[i]);
System.out.print(" ");
}
/*
* java当中产生随机数:
* 1.Math.random()产生[0.0,1.0)的双精度浮点数,
* 要想产生0-9的整型随机数(int)(Matn.random()*10)
* 2.Random r = new Random();
* r.nextInt(10)产生0-9的随机数
* */
}
}