N^2排序算法总结.md

作者: PcDack | 来源:发表于2017-05-26 21:06 被阅读0次
总结.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);

算法的优化

优化演示

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);
  }

三种算法的比较

选择排序 插入排序 冒泡排序
使用场景 效率低少使用 要处理的数据本生的有序性好,可以使用 效率低谨慎使用

相关文章

  • python 八大算法

    排序算法总结 排序算法 平均时间复杂度 冒泡排序O(n2) 选择排序O(n2) 插入排序O(n2) 希尔排序O(n...

  • 排序算法总结

    排序算法总结 分类编程技术 排序算法平均时间复杂度 冒泡排序O(n2) 选择排序O(n2) 插入排序O(n2) 希...

  • N^2排序算法总结.md

    选择排序 算法的图解 算法的基本实现 根据上面的gif图可以得到,实现选择排序需要两个步骤 找到第i个元素后的最小...

  • 常见排序算法总结

    排序算法总结 冒泡排序 时间复杂度 O(n2) 【 O(n)~On(n2)】空间复杂度 O(1)稳定性 ...

  • LeetCode-排序算法

    LeetCode-排序算法 时间复杂度 排序算法平均时间复杂度冒泡排序O(n2)选择排序O(n2)插入排序O(n2...

  • 排序算法总结

    n^2的算法:冒泡排序,选择排序,插入排序n^1.3的算法:希尔排序nlogn的算法:归并排序、快速排序 泛型的使...

  • 算法总结

    算法总结 排序算法说明 (1)排序的定义:对一序列对象根据某个关键字进行排序; 输入:n个数:a1,a2,a3,....

  • 【数据结构】【C#】023-内部排序:👨‍🏫算法总结

    【C#】【数据结构】排序算法总结 动态可视化排序算法网站——SORTING 时间复杂度: (1)平方阶(O(n2)...

  • 算法与数据结构-排序(3)

    常见排序算法 算法平均时间复杂度原地排序稳定排序插入排序O(n^2) ,有序情况 -> O(n)TrueTrue快...

  • 第二章_排序_2019-03-13

    经典的排序算法 冒泡排序(O(n2)):排序区间按N、N - 1、N - 2、……、2的规律变化,有序区间按1、2...

网友评论

    本文标题:N^2排序算法总结.md

    本文链接:https://www.haomeiwen.com/subject/dwoxfxtx.html