/*
#########
############
#############
## ###########
### ###### #####
### ####### ####
### ########## ####
#### ########### ####
#### ########### #####
##### ### ######## #####
##### ### ######## ######
###### ### ########### ######
###### #### ############## ######
####### ##################### ######
####### ###################### ######
####### ###### ################# ######
####### ###### ###### ######### ######
####### ## ###### ###### ######
####### ###### ##### #####
###### ##### ##### ####
##### #### ##### ###
##### ### ### #
### ### ###
## ### ###
__________#_______####_______####______________ 身是菩提树,心如明镜台,时时勤拂拭,勿使惹尘埃。
我们的未来没有BUG
* ==============================================================================
* Filename: Array
* Created: 2017/5/3
* Author: ShangHai WangYuChen
* ==============================================================================
*/
using UnityEngine;
using System.Collections;
using System.Collections.Generic; public class Array : MonoBehaviour {
List<int> list = new List<int>() { 11,5,9,33,15,32,15};
/// <summary>
/// 直接插入排序
/// </summary>
/// <param name="list"></param>
public static void InsertSort(List<int> list) {
//从第二个数开始循环, 循环n-1次
for (int i = 1; i < list .Count; i++)
{
//将待排序的数拿出来, 以便后面挪位子
int temp = list[i];
//j就是最后确定的那个最大/最小数的下标
int j = i;
while (j>=1&&temp <list[j-1])
{
//将满足条件的数据向后移动一位, 腾空位, 为插入挪位子
list[j] = list[j - 1];
j--;
}
list[j] = temp;
}
}
/// <summary>
/// 希尔排序
/// </summary>
/// <param name="list"></param>
public static void ShellSort(List<int> list) {
int step = list.Count / 2;
while (step>=1)
{
for (int i = step; i < list.Count; i++)
{
int temp = list[i];
int j = i;
while (j>=step&&temp>list[j-step])
{
list[j] = list[j - step];
j -= step;
}
list[j] = temp;
}
step = step / 2;
}
}
/// <summary>
/// 直接选择排序
/// </summary>
/// <param name="list"></param>
public static void SelectionSort(List<int> list) {
for (int i = 0; i < list.Count -1; i++)
{
//假设tempIndex的下标的值最小
int tempIndex = i;
for (int j = i+1; j < list.Count; j++)
{
//如果tempIndex下标的值大于j下标的值,则记录较小值下标j
if (list [tempIndex]>list [j])
{
tempIndex = j;
}
}
//最后将假想最小值跟真的最小值进行交换
int temp = list[tempIndex];
list[tempIndex] = list[i];
list[i] = temp;
}
}
/// <summary>
/// 冒泡排序算法
/// </summary>
/// <param name="list"></param>
public static void BubbleSort(List<int> list) {
for (int i = 0; i < list.Count -1; i++)
{
for (int j = 1; j < list.Count ; j++)
{
//如果前面一个数大于后面一个数则交换
if (list [j-1]>list [j])
{
int temp = list[j - 1];
list[j - 1] = list[j];
list[j] = temp;
}
}
}
}
/// <summary>
/// 冒泡排序算法(自己喜欢常用的冒泡排序)
/// </summary>
/// <param name="list"></param>
public static void loveSort(List<int> list)
{
for (int i = 0; i < list.Count; i++)
{
for (int j = i+1; j < list.Count; j++)
{
//如果前面一个数大于后面一个数则交换
if (list[i] > list[j])
{
int temp = list[i];
list[i] = list[j];
list[j] = temp;
}
}
}
} void Start () {
// InsertSort(list);
//ShellSort(list);
//SelectionSort(list);
//BubbleSort(list);
loveSort(list);
for (int i = 0; i < list.Count; i++)
{
Debug.Log("第"+i+"是:"+list [i]);
}
}
}

  

Array数组集合的排序的更多相关文章

  1. C#数组集合使用 排序的问题

    //没有顺序 //ArrayList a = new ArrayList(); //a.Add("asda"); //a.Add("asda222222"); ...

  2. Scala-Unit4-Scala数组/集合

    一.Scala数组 1.数组的定义: 方法一:val arr = new Array[String](3) String代表数据的元素类型.3表示数组的长度 方法二:val arr = Array[I ...

  3. Java之数组array和集合list、set、map

    之前一直分不清楚java中的array,list.同时对set,map,list的用法彻底迷糊,直到看到了这篇文章,讲解的很清楚. 世间上本来没有集合,(只有数组参考C语言)但有人想要,所以有了集合 ...

  4. Java-杂项:Java数组Array和集合List、Set、Map

    ylbtech-Java-杂项:Java数组Array和集合List.Set.Map 1.返回顶部 1. 之前一直分不清楚java中的array,list.同时对set,map,list的用法彻底迷糊 ...

  5. JavaScript引用类型之Array数组的排序方法

    数组中已经存在两个JavaScript给我们定义好的重排序的方法:reverse()和sort()方法,下面来简单分析下: 1.reverse()    用于反转数组项的顺序,代码如下: <sc ...

  6. Array 数组的排序 sort

    JavaScript实现多维数组.对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序.sort() 方法用于对数组的元素进行排序.语法如下:arrayObject.sort(s ...

  7. List集合与Array数组之间的互相转换

    1.数组转换成List集合 采用java中集合自带的asList()方法就可以完成转换了 String[] array = new String[] {"zhu", "w ...

  8. JS对象 Array 数组对象 数组对象是一个对象的集合,里边的对象可以是不同类型的。数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置,是从零开始的

    Array 数组对象 数组对象是一个对象的集合,里边的对象可以是不同类型的.数组的每一个成员对象都有一个"下标",用来表示它在数组中的位置,是从零开始的 数组定义的方法: 1. 定 ...

  9. Java数据结构和算法之数组与简单排序

    一.数组于简单排序 数组 数组(array)是相同类型变量的集合,可以使用共同的名字引用它.数组可被定义为任何类型,可以是一维或多维.数组中的一个特别要素是通过下标来访问它.数组提供了一种将有联系的信 ...

随机推荐

  1. Unity之如何从fbx提取Animation clip文件

    见代码: static void CreateAnim(string fbx, string target) { AnimationClip src = AssetDatabase.LoadAsset ...

  2. 15. 3Sum(字典)

    Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find ...

  3. hdu5125 树状数组+dp

     hdu5125 他说的是n个人每个人都有两个气球a,b,气球各自都有相应的体积,现在让他们按照序号排列好来,对他们的a气球体积值计算最长上升子序列,对于这整个排列来说有m次机会让你将a气球替换成b气 ...

  4. sitecore系列教程之Sitecore个性化-配置文件,模式和角色

    这是利用Sitecore规则引擎实现数字化转换的三部分系列的第二部分.阅读上一篇文章,通过为您的个性化体验定义内容策略来设置基础.   Sitecore有一个非常强大的规则引擎,可以帮助推动个性化的用 ...

  5. Eclipse-----解决调试源码不进入断点问题

    1.Window-->Preferences-->Java-->installed JRES   添加Standard VM 添加完成后,如下图 2.右键点击项目-->Prop ...

  6. awk和sed

    在正则表达式那章有两个比较好用的命令sed 和awk awk 是按指定分隔符分隔,默认空白键,第一个为$1,第二个为$2... 命令: FS分隔符

  7. jsp无法访问

    一直无法访问jsp: 由于Spring boot使用的内嵌的tomcat,而内嵌的tamcat是不支持jsp页面的,所有需要导入额外的包才能解决. <!-- 解决jsp无法访问 --> & ...

  8. 设计模式之Bridge(桥接)(转)

    Bridge定义 : 将抽象和行为划分开来,各自独立,但能动态的结合. 为什么使用? 通常,当一个抽象类或接口有多个具体实现(concrete subclass),这些concrete之间关系可能有以 ...

  9. 调用微信JS-SDK配置签名

    前后端进行分开开发: 1:后端实现获取 +++接口凭证:access_token (公众号的全局唯一接口调用凭据) ** GET 获取:https://api.weixin.qq.com/cgi-bi ...

  10. Linux基础命令---查找进程id

    pidof pidof可以查找指定名称的进程的pid,将结果送到标准输出.pidof有两种返回值:0,找到至少一个进程:1,没有找到进程.pidof实际上与killall5相同:程序根据调用它的名称进 ...