N^2排序算法总结.md

总结.png

选择排序

算法的图解

SetectSort.gif

算法的基本实现

根据上面的gif图可以得到,实现选择排序需要两个步骤

  • 找到第i个元素后的最小的数字
for (int i = 0; i < myArray.length; i++) {
    minIndex=i; //假设最小值为i
 //寻找最小值  
    for (int j = i; j < myArray.length; j++) {
        if (myArray[minIndex]>myArray[j]) minIndex=j;
}
  • 交换最小位置的元素和第i个位置的元素
Utils.swap(myArray,i,minIndex);

交换方式的一个小结

插入排序

动态演示

InstallSort.gif

算法的基本实现

  • 判断当前索引的元素与其前面的数据进行比较
for (int i = 1; i < myArray.length; i++) {
    for (int j = i; j >0; j--) {
  }
}
  • 如果小于前面的索引,则进行位置交换
 if (myArray[j]<myArray[j-1])
            Utils.swap(myArray,j,j-1);

算法的优化

优化演示

  • 起因:因为交换数据每次都需要,创建三个变量,效率十分的低,我们需要用一种方式,使得不需要交换数据也能实现功能
  • 方法:将当前索引的位置的数据进行copy,用这个拷贝值与前面的数据进行比较,如果小于前面的数据,则前面的数据向后移动,直到,copy值大于前面的某一个值,然后替换到该位置

实现

for (int i = 1; i < myArray.length; i++) {
    int e=myArray[i];    //记录当前索引的值
     int j;              //方面与最后位置索引进行数据赋值
  for (j = i; j >0 && e < myArray[j-1]; j--)  
        myArray[j]=myArray[j-1];    //比当前索引值大的数据整体位置向后移动
  myArray[j]=e;          //将拷贝值放入正确位置
}

算法的使用场景

  • 如果当前数据本身是相对有序的,那么插入算法相比其他算法效率更高。
  • 如果数据本身是无序的,那么,选择O(n*logn)的方法

冒泡排序

算法的动画演示

BubbleSort.gif

算法的基本实现

  • 遍历数组
for (int i = 0; i < array.length; i++)
  • 找出在i位置真正的数据,也就是i后的最小值,放入i的位置
for (int j = array.length-1 ; j > i; j--) { //注意这里一定要大于i否则会产生越界的问题
  if (array[j]<array[j-1]){
        Utils.swap(array,j,j-1);
  }

三种算法的比较

选择排序 插入排序 冒泡排序
使用场景 效率低少使用 要处理的数据本生的有序性好,可以使用 效率低谨慎使用
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容

  • 排序的基本概念 在计算机程序开发过程中,经常需要一组数据元素(或记录)按某个关键字进行排序,排序完成的序列可用于快...
    Jack921阅读 1,399评论 1 4
  • 某市商场的兴衰 该商场座南朝北,东边开如空缺,西边银行高楼,商场开业后不久,生意萧条,一直至营不下去而倒闭,业主曾...
    杜雨桐ovo阅读 251评论 0 0
  • 你的笑脸 ——致自己 曾经 你一定有过干净的笑脸 淡淡的忧伤和愤怒掠过 也被笑涡溶解 化作五彩的快乐绚烂地挂在你的...
    风景63阅读 374评论 0 0
  • 我啊!真的想去看看外面的世界
    大圣的金箍棒我来扛阅读 166评论 0 0