插入法排序

来源:互联网 发布:知远战略与防务论坛 编辑:程序博客网 时间:2024/05/21 07:12

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的随机数
* */
}
}

0 0
原创粉丝点击