问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于java直接插入算法的问题

发布网友 发布时间:2022-04-27 06:35

我来回答

2个回答

热心网友 时间:2022-06-27 19:21

/**这是一个利用直接插入排序法写的一个小程序;
  直接插入排序是一个将待排序列中的元素p[i]与一个有序序列中的元素q[j--]比较(从后向前),当p[i] >= q[j] (递增排序)或 p[i] <= q[j] (递减排序)时,q[j+1] = p[i];反之就将q[j]移位到q[j+1]为p[i]的插入预留空间且如果j==0则q[j] = p[i].
  */
  public class SISort
  {
  public static int[] sortAscending(int []with){ //整数递增排序
  int length = with.length; //获取待排数组的元素个数;
  int []temp = new int[length];
  temp[0] = with[0]; //定义一个只有一个元素的有序数组
  for(int i=1; i<length; i++){
  for(int j=i-1; j>=0;j--){
  if(with[i] >= temp[j]){ //如果待排序列中的元素大于等于有有序序列中的元素,则插入
  temp[j+1] = with[i];
  break;
  }
  else {
  temp[j+1] = temp[j]; //给待插入元素预留空间
  if(j == 0)
  temp[j] = with[i]; //with[[i]是有序序列中最小的,因此排在开头
  }
  }
  }
  return temp;
  }
  public static double[] sortAscending(double []with){ //带小数的递增排序
  int length = with.length; //获取待排数组的元素个数;
  double []temp = new double[length];
  temp[0] = with[0]; //定义一个只有一个元素的有序数组
  for(int i=1; i<length; i++){
  for(int j=i-1; j>=0;j--){
  if(with[i] >= temp[j]){ //如果待排序列中的元素大于等于有有序序列中的元素,则插入
  temp[j+1] = with[i];
  break;
  }
  else {
  temp[j+1] = temp[j]; //给待插入元素预留空间
  if(j == 0)
  temp[j] = with[i]; //with[[i]是有序序列中最小的,因此排在开头
  }
  }
  }
  return temp;
  }
  public static double[] sortDescending(double []with){ //递减排序
  int length = with.length; //获取待排数组的元素个数;
  double []temp = new double[length];
  temp[0] = with[0]; //定义一个只有一个元素的有序数组
  for(int i=1; i<length; i++){
  for(int j=i-1; j>=0;j--){
  if(with[i] <= temp[j]){ //如果待排序列中的元素小于等于有有序序列中的元素,则插入
  temp[j+1] = with[i];
  break;
  }
  else {
  temp[j+1] = temp[j]; //给待插入元素预留空间
  if(j == 0)
  temp[j] = with[i]; //with[[i]是有序序列中最大的,因此排在开头
  }
  }
  }
  return temp;
  }
  public static int[] sortDescending(int []with){ //递减排序
  int length = with.length; //获取待排数组的元素个数;
  int []temp = new int[length];
  temp[0] = with[0]; //定义一个只有一个元素的有序数组
  for(int i=1; i<length; i++){
  for(int j=i-1; j>=0;j--){
  if(with[i] <= temp[j]){ //如果待排序列中的元素小于等于有有序序列中的元素,则插入
  temp[j+1] = with[i];
  break;
  }
  else {
  temp[j+1] = temp[j]; //给待插入元素预留空间
  if(j == 0)
  temp[j] = with[i]; //with[[i]是有序序列中最大的,因此排在开头
  }
  }
  }
  return temp;
  }
  /* public static void main(String[] args)
  {
  int []test1 = {2,6,5,8,7,9,10,256,248,14}; //测试数组
  double []test2 = {1.1,2.0,3,5,6,8.9,99,5};
  int []temp1; //中间变量
  double []temp2;
  temp1 = sortDescending(test1); //测试整数递减排序
  System.out.println("get a Decreasing sequence ");
  for(int i=0; i<temp1.length; i++){
  System.out.println(temp1[i]);
  }
  temp1 = sortAscending(test1); //测试整数递增排序
  System.out.println("get a Increasing sequence");
  for(int i=0; i<temp1.length; i++){
  System.out.println(temp1[i]);
  }
  temp2 = sortDescending(test2); //测试带小数递减排序
  System.out.println("get a Decreasing sequence ");
  for(int i=0; i<temp2.length; i++){
  System.out.println(temp2[i]);
  }
  temp2 = sortAscending(test2); //测试带小数递增排序
  System.out.println("get a Increasing sequence");
  for(int i=0; i<temp2.length; i++){
  System.out.println(temp2[i]);

热心网友 时间:2022-06-27 19:22

A

顺便说下:
算法就是算法,与具体编程语言无关

如果用java排序的话,你根本不用考虑什么算法,直接Collections.sort(xxx)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
不想让老婆看到我电脑里的一些东西怎么办? 桥好路由器停电后在来电老是获取lp 勒索病毒加密的文件如何恢复? TPU贴合膜多少钱 华为手机如何将输入法改为简体 肉丝炒金针菇做法 仓储冷链信息怎么申报 什么是药品冷链物流 浙江食品冷链运输多少钱 生物冷链具备什么资质 java插入排序算法 java 直接插入排序的例子 JAVA实现插入排序 Java插入排序 虚拟现实应用技术可以考哪些本科专业? 虚拟现实技术的应用领域 美国婚姻法有婚前财产一说吗 离婚财产如何分配?什么是婚前财产?什么是婚后财产? OPPOk3手机进水后,升降摄像头就打开不了。什么情况 如何确定是婚前财产还是婚后财产? 你好 我的oppok3主板严重进水。去手机店修要150来修哪里坏了?_百度知 ... 结婚后多久婚前财产才算共同财产? “房子是婚前财产,你净身出户”这事你怎么看? 婚前财产与婚后财产怎么区分? OPPOk3手机进水后,升降摄像头就打开不了。什么情况? 新婚姻法对婚前婚后财产问题具体的说法说知道? oppok3有范水吗? 婚前财产分割 婚前财产就永远是婚前财产 听说婚后5年婚前财产自动变为共同财产,这个说法对吗? java 插入排序 ,下面是一些代码,请大师写下剩下的代码 实现一下插入排序。 JAVA一个已经排好序的数组(元素为10个),插入一个数按照原来的排序? java数组的插入排序 谁能用java给我写个插入排序 要求写的简洁一点 Java编程:简化的插入排序? java 插入排序的问题 java语言 插入后重新排序 Java的插入排序谁给我 分析一下!!写意个简单的例子 JAVA....请分别写出直接插入排序、冒泡排序、简单选择排序的各趟结果 用JAVA实现折半插入排序的题目 nbA2K14的键盘操作技巧 手机版NBA2k14怎么操作? NBA2K14手机版如何弄转身,背后运输,靠打之类的动作,这类的操作越多越 ... NBA2k14手机操作技巧 手机版NBA2k14怎么玩 各功能介绍 nba2k14游戏操作按键,有哪些动作? 手机NBA2k14动作怎么做,例如后撤步 等… 手机版NBA 2K14怎么扣篮啊 NBA2K14操作技巧 安卓手机版的NBA2K14怎么空接或者做其他动作啊