插入法排序
来源:互联网 发布:知远战略与防务论坛 编辑:程序博客网 时间: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的随机数
* */
}
}
- 【排序】插入排序法
- 插入排序法排序数组
- 排序法之插入排序
- 排序算法--插入排序法
- 排序算法-插入排序法
- 直接插入排序法
- 直接插入排序法
- 回溯插入排序法
- 插入排序法
- 理解插入排序法
- 插入排序法
- 插入法排序
- 插入法排序
- 插入法排序
- 插入排序法
- 直接插入排序法
- 插入法排序
- 插入法排序 .
- B\S备忘录01——此吧神兽“焰正马 ”
- 网易游戏2015雷火事业部实习招聘会笔记
- 阅读深入理解计算机系统(三)--------------- 虚拟存储器
- scipy入门
- java 装饰设计模式
- 插入法排序
- codevs1163访问艺术馆
- $_SERVER["QUERY_STRING"]
- 光凭验证码就可以盗号!微信盗号新手段揭秘
- 奇幻之旅二
- 【剑指Offer面试编程题】题目1519:合并两个排序的链表--九度OJ
- latex中参考文献
- 卸载第一步:统计安装文件和注册表操作(批处理) FOR MSI
- Hibernate进行映射时,类中字段名最好不要带下划线,首字母不要小写