首页投稿(暂停使用,暂停投稿)程序员数据结构和算法分析

N^2排序算法总结.md

2017-05-26  本文已影响0人  PcDack
总结.png

选择排序

算法的图解

SetectSort.gif

算法的基本实现

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

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;
}
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++)
for (int j = array.length-1 ; j > i; j--) { //注意这里一定要大于i否则会产生越界的问题
  if (array[j]<array[j-1]){
        Utils.swap(array,j,j-1);
  }

三种算法的比较

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

猜你喜欢

热点阅读