选择法排序 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 ... 
随机推荐
- Android4.0图库Gallery2代码分析(二) 数据管理和数据加载
			Android4.0图库Gallery2代码分析(二) 数据管理和数据加载 2012-09-07 11:19 8152人阅读 评论(12) 收藏 举报 代码分析android相册优化工作 Androi ... 
- stm32 RAM分配及占有(转)
			源:http://blog.chinaunix.net/uid-26921272-id-4550126.html 一个小的项目,在测试时间和产品量稍微大一些之后,出现了一些莫名其妙的非逻辑错误的Bug ... 
- 省市区三级联动插件:app-jquery-cityselect.js
			(function ($) { $.fn.cityselect = function (options) { var settings = $.extend ({}, options); this.e ... 
- PHP Markdown 解析器Parsedown
			PHP Markdown 解析器Parsedown http://parsedown.org/demo 
- Cocos2dx 学习笔记整理----第一个项目
			接上一节, 进入新建的项目下面的proj.win32下面,找到项目名.sln文件(我的是game001.sln),双击会通过VS2010打开.(当然,你装了VS什么版本就是什么版本) 将你的项目设为启 ... 
- Asp.net Ajax提供PageMethods调用
			页面上的Javascript通过ASP.NET AJAX除了可以调用Web服务类,还可以调用网页中的静态方法. <%@ Page Language="C#" %> &l ... 
- Struts2实现异步调用机制详细剖析(XML和JSON)
			一.使用XML传递 1.页面展示getXML.jsp <%@ page language="java" import="java.util.*" page ... 
- Bestcoder #80
			首先吐槽一下,ca爷出的这套题到处都是坑,bestcoder变成besthack,Ranting已经掉得不能看了 A题: 链接:http://acm.hdu.edu.cn/showproblem.ph ... 
- LPC1768的USB使用-枚举过程
			枚举过程如下 #ifndef __USBCORE_H__ #define __USBCORE_H__ /* USB端点0 发送数据结构体*/ typedef struct _USB_EP_DATA { ... 
- Java ThreadFactory接口用法
			根据需要创建新线程的对象.使用线程工厂就无需再手工编写对 new Thread 的调用了,从而允许应用程序使用特殊的线程子类.属性等等. JDK中的介绍: An object that creat ... 
