选择法排序 vb.net
Imports System.Threading
Module Module1
Sub Main()
'test code
'Dim a, b As Integer
'a = 3
'b = 4
'Exchange(a, b)
'Console.WriteLine("a=" & a & ", b=" & b)
Dim int_array(19) As Integer
Dim maxValIndex As Integer
Dim startIdx As Integer '开始位置
Dim rnd As New Random
Console.WriteLine("原始数组:")
'填充数组元素
For i As Integer = 0 To int_array.Length - 1
int_array(i) = rnd.Next(0, 500)
Console.Write(int_array(i) & ", ")
Thread.Sleep(150)
Next
'选择法排序(降序)
startIdx = 0 '默认从第一个元素开始比较
Do
maxValIndex = startIdx '默认第一个元素最大
maxValIndex = GetMaxValIdx(int_array, maxValIndex, startIdx) '求数组中最大值得下标
If (maxValIndex <> startIdx) Then
Exchange(int_array(maxValIndex), int_array(startIdx))
End If
startIdx += 1
Loop While (startIdx < int_array.Length - 1)
Console.WriteLine(vbCrLf & "排序之后:")
For i As Integer = 0 To int_array.Length - 1
Console.Write(int_array(i) & ", ")
Next i
Console.ReadKey()
End Sub
'求数组中最大值得下标,递归函数
Public Function GetMaxValIdx(ByVal array() As Integer, ByVal maxValIdx As Integer, ByVal startIdx As Integer) As Integer
For i As Integer = startIdx To array.Length - 1
If (i <> maxValIdx) Then
If array(i) > array(maxValIdx) Then
Return GetMaxValIdx(array, i, startIdx)
End If
End If
Next
Return maxValIdx
End Function
'交换值
Public Sub Exchange(ByRef val1 As Integer, ByRef val2 As Integer)
Dim temp As Integer
temp = val1
val1 = val2
val2 = temp
End Sub
End Module
选择法排序 vb.net的更多相关文章
- 【Python】【demo实验35】【基础实验】【排序】【选择法排序】
原题: 使用选择法对10个数字排序: 即取10个数中最小的放在第一个位置,再取剩下9个中最小的放在第二个位置... 我的源码: #!/usr/bin/python # encoding=utf-8 # ...
- C语言复习---选择法排序
选择排序也是一种简单直观的排序算法 它的工作原理很容易理解:初始时在序列中找到最小(大)元素,放到序列的起始位置作为已排序序列:然后,再从剩余未排序元素中继续寻找最小(大)元素,放到已排序序列的末尾. ...
- C语言选择法排序
#include <stdio.h> int main() { int i, j, p, n, q; ] = {, , , , }; //对无序数组进行排序 ; i<; i++) { ...
- 【C语言】用指针描述数组,实现选择法排序
#include <stdio.h> int main() { ], t; int i, j, max; printf("请输入10个数:\n"); ; i <= ...
- 【Java基础】选择排序、冒泡法排序、二分法查找
1.选择排序: //改进后的选择排序,减少交换的次数 public static void sortSelect(int arr[]) { //用于存放最小数的下标 int s; for (int i ...
- C语言排序算法之简单交换法排序,直接选择排序,冒泡排序
C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 简单交换法排序 /*简单交换法排序 根据序列中两个记录键值的比较结果来对换这两 ...
- 8. 冒泡法排序和快速排序(基于openCV)
一.前言 主要讲述冒泡法排序和快速排序的基本流程,并给出代码实现,亲测可用. 二.冒泡法排序 冒泡法排序主要是将相邻两个值比较,把小的向前冒泡,大的向后沉淀,时间复杂度为O(n2).主要思想如下: 分 ...
- 特征选择:方差选择法、卡方检验、互信息法、递归特征消除、L1范数、树模型
转载:https://www.cnblogs.com/jasonfreak/p/5448385.html 特征选择主要从两个方面入手: 特征是否发散:特征发散说明特征的方差大,能够根据取值的差异化度量 ...
- 选择法数组排序参考(Java)
package com.swift; public class Xuanze { public static void main(String[] args) { int[] arr= {28,2,3 ...
随机推荐
- 创建git密钥的时候提示 too many arguments
这个时候只要这样做就ok了, 给邮箱包两层引号,如下: " 'zhangsanfeng@qq.com' " 妥妥的!
- Hibernate---基础配置
hibernate.cfg.xml里可以设置一个值显示更详细的sql语句: <property name="format_sql">true</property& ...
- OC与Swift创建pod
Cocoa pods 是iOS最常用的类库管理工具 OC的使用 删除源 sudo gem sources -r https://rubygems.org/ 添加源(使用淘宝的镜像,记住要用 ...
- [转]ASP.NET Core 1 Deploy to IIS
本文转自: http://webmodelling.com/webbits/aspnet/aspnet-deploy-iis.aspx 15 Sep 2016. This tutorial will ...
- mysql管理 ------查看 MySQL 数据库中每个表占用的空间大小
如果想知道MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE ...
- Kconfig基本语法
Linux 内核在2.6版本以后将配置文件由原来的config.in改为Kconfig.当执行make menuconfig时会出现内核的配置界面,所有配置工具都是通过读取arch/$(ARCH)Kc ...
- 把View转化成Image
+ (UIImage *) imageWithView:(UIView *)view { UIGraphicsBeginImageContextWithOptions(view.bounds.size ...
- WCF应用场景
WCF全称Windows Communication Foundation,是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework 3.5的重要组成部分.使用 ...
- Oracle安装卸载
http://study.163.com/course/courseLearn.htm?courseId=932016#/learn/video?lessonId=1115367&course ...
- github 创建新项目
二.GitHub简介 GitHub 可以托管各种Git版本库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进 ...