SelectSort】的更多相关文章

public class Strategy { public static void main(String[] args) { int [] array=new int[]{26,25,15,42,36,16,12}; IInfo test1=new BubbleSort(); //接口引用指向实现了此接口的类创建的实例,创建具体的策略对象 IInfo test2=new SelectSort(); IInfo test3=new InsertSort(); context cont1=new…
/** *选择排序: * 对冒泡排序的一个改进 * 进行一趟排序时,不用每一次都交换,只需要把最大的标示记下 * 然后再进行一次交换 */ public class SelectSort { /** *选择排序主方法 * */ public static void selectSort(int[] resouceArr) { for(int i = resouceArr.length - 1 ; i >= 0 ; i-- ) { int max = 0 ; for(int j = 0 ; j <…
/** * * @author Administrator * 功能:选择排序法 */ package com.test1; import java.util.Calendar; public class SelectSort { public static void main(String[] args) { // TODO Auto-generated method stub //int[] arr = { 1, 6, 0, -1, 9, -100, -90 }; int[] arr = n…
//SelectSort (( O(n²))) public class TestSelectSort { public int[] selectSortArray(int[] arr){ int min_index; for(int i = 0; i <arr.length - 1; i ++){ min_index = i; for(int j = i + 1; j < arr.length; j ++){ if(arr[j] < min_index){ min_index = j;…
Swap的简单实现 //C语言方式(by-pointer): template <typename Type> bool swapByPointer(Type *pointer1, Type *pointer2) { //确保两个指针不会指向同一个对象 if (pointer1 == NULL || pointer2 == NULL) { return false; } if (pointer1 != pointer2) { Type tmp = *pointer1; *pointer1 =…
package com.sort; /* * 选择排序 * 把第一位与其他数进行比较,这样每轮比较都会出现一个最大值或最小值 * 根据需要让升序或降序排列 */ public class SelectSort { public static void main(String[] args) { int arr[] = {9,6,5,8,4,1,7,2,3}; System.out.println("排序之前:"); for (int k = 0; k < arr.length;…
1.介绍 选择排序算法属于内部排序算法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置达到排序的目的 时间复杂度:O(n^2) 双层for 2.思想 选择排序(select sorting)也是一种简单的排序方法.它的基本思想是:第一次从arr[0]~arr[n-1]中选取最小值, 与arr[0]交换,第二次从arr[1]~arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]~arr[n-1]中选取最小值,与arr[2]交换,…, 第i次从arr[i-1]~ar…
# -*- coding: utf-8 -*-"""------------------------------------------------- File Name: test Description : Author : Administrator date: 2018/9/2 0002-------------------------------------------------""" # the default max number…
/**简单选择排序*/ #include<cstdio> #include<algorithm> using namespace std; int a[]={5,2,1,3,4,6,8,9,10}; void f(int n){ for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++) if(a[j]<a[i]) swap(a[j],a[i]); } } int main() { f(5); for(int i=0;i<5;i…
为了方便测试,这里写了一个创建长度为n的随机数组 function createArr(n) { var arr = []; while (n--) { arr.push(~~(Math.random() * 100)); } return arr; } 冒泡排序:在要排序的一组数中,从前往后对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒. 即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换. 若排序要求为从小到大,每一次外层循环把最大的数沉在最后一位,内层循…
常见排序算法与java实现 一.选择排序(SelectSort) 基本原理:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录与第一个记录的位置进行交换:接着对不包括第一个记录以外的其他记录进行第二次比较,得到最小的记录并与第二个记录进行位置交换:重复该过程,直到进行比较的记录只有一个为止. public class SelectSort { public static void selectSort(int[] array) { int i; int j; int temp; i…
很多的面试题都问到了排序算法,中间的算法和思想比较重要,这边我选择了5种常用排序算法并用Java进行了实现.自己写一个模板已防以后面试用到.大家可以看过算法之后,自己去实现一下. 1.冒泡排序:大数向下沉,小数向上浮. package TestProject; /** * 冒泡排序 * @author xuhui * */ public class SortAll { public static void main(String[] args){ int[] a = {0,8,1,2,8,6,1…
简单选择排序法 选择排序(Selection Sort)的基本思想:对n个记录进行扫描,选择最小的记录,将其输出,接着在剩下的n-1个记录中扫描,选择最小的记录将其输出,--不断重复这个过程,直到只剩一个记录为止.   程序实现: private static void SelectSort(int[] dataArray) { ; i < dataArray.Length-; i++) { int min = dataArray[i]; int minIndex = i;//最小值所在索引 ;…
public static void radixsort(int[] a){ int max=a[0]; for(int i=1;i<a.length;i++){ if (max<a[i]) { max=a[i]; } } int time=0; while(max>0){ max/=10; time++; } java.util.List<ArrayList> queue=new ArrayList<ArrayList>(); for(int i=0;i<…
/************************************** 整数对应 32 bit 二进制数串中数字1的个数 2016-10-24 liukun ***************************************/ #include <stdio.h> // #include <math.h> // 整数对应 32 bit 二进制数串中数字1的个数 int binary1counter(int n) { // if(n<0) return -1…
前言:     本人自接触算法近2年以来,在不断学习中越多地发觉各种算法中的美妙.之所以在这方面过多的投入,主要还是基于自身对高级程序设计的热爱,对数学的沉迷.回想一下,先后也曾参加过ACM大大小小的校级赛.区域赛.没什么惊天动地的奖项,最好的名次也就省三等奖.现在作为第一篇算法总结就拿常见的排序算法以我个人的理解,以及代码实现跟大家简单分享一下(排序算法如果一一罗列的话,不下十种.曾在图书馆的旧书架上看过一本近900页的书,内容就是专门介绍排序算法). 选择排序(select) 选择排序比较容…
前言:在前端大全中看到这句话,以此共勉.基础决定你可能达到的高度, 而业务决定了你的最低瓶颈 其实javascript算法在平时的编码中用处不大,不过不妨碍我们学习它,学习一下这些算法的思想,锻炼一下自己的思维模式. 本文不会每种方法都介绍一下,只介绍一下七种,纯属为了学习而学习,如果觉得代码不是很好理解,可以将数组里面的内容代入函数里面. 不过刚开始理解的时候确实挺头疼的.废话少说,搞起来!! 要查看排序的动画,可以 点这里 冒泡排序 原理: 从第一个元素开始,往后比较,遇到比自己小的元素就交…
随着校招的临近 算法是校招中很重要的一个部分 总结了常见几种排序算法,各种算法的时间复杂度和空间复杂度大家也需要多了解下 package com.huwei.sort; /** * 各种排序算法 * * @author huwei * */ public class Sort { public static void main(String[] args) { int[] a = { 60, 57, 89, 47, 57, 98, 45, 35, 73 }; Sort sort = new So…
Copyright © 1900-2016, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ 欢迎转载,请保留此版权声明. --------------------------------------------------------------------------------------- 转载自 http://www.cnblogs.com/cy163/archive/2006/11/02/547428.html…
目录(?)[-] 概述 插入排序直接插入排序Straight Insertion Sort 插入排序希尔排序Shells Sort 选择排序简单选择排序Simple Selection Sort 选择排序堆排序Heap Sort 交换排序冒泡排序Bubble Sort 交换排序快速排序Quick Sort 归并排序Merge Sort 桶排序基数排序Radix Sort 总结   概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的…
冒泡排序.选择排序与插入排序复杂度都是二次方级别的,放在一起说吧. 介绍一些学习这三个排序方法的比较好的资料.冒泡排序看<学习JavaScript数据结构与算法>介绍的冒泡排序,选择排序看<计算机科学概论(第三版)>里介绍的选择排序,插入排序看<计算机科学概论(第11版)>里介绍的插入排序, 通过这三份资料弄明白实现原理之后,最后看<学习JavaScript数据结构与算法>一书里的JS实现代码. 嗯,<学习JavaScript数据结构与算法>这本…
排序大的分类可以分为两种:内排序和外排序.在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序.下面讲的排序都是属于内排序. 内排序有可以分为以下几类: (1).插入排序:直接插入排序.二分法插入排序.希尔排序. (2).选择排序:简单选择排序.堆排序. (3).交换排序:冒泡排序.快速排序. (4).归并排序 (5).基数排序 一.插入排序 •思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置,直到全部插入排序完为止. •关键问…
今天总结了一下常用的7种排序方法,并用php语言实现. 直接插入排序 /* * 直接插入排序,插入排序的思想是:当前插入位置之前的元素有序, * 若插入当前位置的元素比有序元素最后一个元素大,则什么也不做, * 否则在有序序列中找到插入的位置,并插入 */ function insertSort($arr) { $len = count($arr); for($i = 1; $i < $len; $i++) { if($arr[$i-1] > $arr[i]) { for($j = $i -…
分类: 1)插入排序(直接插入排序.希尔排序)2)交换排序(冒泡排序.快速排序)3)选择排序(直接选择排序.堆排序)4)归并排序5)分配排序(基数排序) 所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序. 先来看看8种排序之间的关系: 1.直接插入排序 (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排 好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数 也是排好顺序的.如此反复循环,直到全部排好顺…
选择排序与冒泡排序有很大的相同点,都是一次遍历结束后能确定一个元素的最终位置,其主要思路是,一次遍历选取最小的元素与第一个元素交换,从而使得一个个元素有序,而后选择第二小的元素与第二个元素交换,知道,最后只剩下一个元素,起就是最大的元素,此时排序完成. 代码如下;eclipse 4.3 jdk1.6 package basic.sort; import java.util.Arrays; import java.util.Random; public class SelectSort { pub…
Java实现数组排序 package com.souvc.hibernate.exp; public class MySort { /** * 方法名:main</br> * 详述:Java实现数组排序 </br> * 开发人员:liuhf </br> * 创建时间:2016-3-22 </br> * @param args * @throws * @since V1.0 */ public static void main(String[] args) {…
地图的数据以及区域的信息是场景的重要组成部分,这些数据同时存在客户端和服务器,而且都是由编辑器生成的.那么保存的文件数据结构是怎样的?一张3D的场景地图又是怎样处理这些数据的?同时告诉大家这里同样只是讲的理论与设计,理论和设计往往都很空洞,但是却很灵活,需要靠每个人怎么运用. 一些图片 区域和格子 从上面的截图可以看出游戏场景其实是由格子来区分的,不管是矩形的格子还是其他形状的格子也好,一张地图不可能只有一个点(即多点组成一张地图).在3D场景中似乎格子的位置总伴随着高度信息,所以让人感觉有些迷…
选择排序 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完. 时间复杂度  选择排序的交换操作介于 0 和 (n - 1) 次之间.选择排序的比较操作为 n (n - 1) / 2 次之间.选择排序的赋值操作介于 0 和 3 (n - 1) 次之间.比较次数O(n^2),比较次数与关键字的初始状态无关,总的比较次数N=(n-1)+(n-2)+...+1=n*(…
package com.souvc.hibernate.exp; public class MySort { /** * 方法名:main</br> * 详述:Java实现数组排序 </br> * 开发人员:liuhf </br> * 创建时间:2016-3-22 </br> * @param args * @throws * @since V1.0 */ public static void main(String[] args) { int array[…
1:StringBuffer(掌握) (1)用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,为了解决这个问题,Java就提供了 一个字符串缓冲区类.StringBuffer供我们使用. (2)StringBuffer的构造方法 A:StringBuffer() B:StringBuffer(int size) C:StringBuffer(String str) (3)StringBuffer的常见功能(自己补齐方法的声明和方法的解释) A:添加功能 B:删除功能 C:替换功…