三种常用排序算法整理
来源:互联网 发布:http传输数据 编辑:程序博客网 时间:2024/06/01 09:49
大概逻辑就是:
第一次外循环:假设第一个值为最小值,和第二个以后的所有值比较大小,如果*有比第一个小的元素,把min设置为该元素的索引,如果有比该元素小的索引,把min设置为另一个更小的元素的索引,这样,第一层外循环过后第一个元素的位置上就是最小的值。
第二次外循环:假设第二个值为次小值,和第三个元素以后的所有值比大小……
privatestaticvoidselectSort(int[] arr) {
for (int i = 0; i < arr.length-1; i++) {
int min = i;
for (int j = i+1; j < arr.length; j++) {
if (arr[j]< arr[min]) {
min = j;
}
}
if (i != min){
int temp =arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
}
}
大概逻辑就是:
外循环表示循环的次数
第一次内循环,依次比较从第一个到最后一个之间相邻的两个元素,如果前面的比后面的元素大,即交换位置这样,第一次外循环后最后一个元素为最大值。
第二次外循环,依次比较从第一个到倒数第二个之间相邻的两个元素,如果前面的比后面的元素大,即交换位置,这样,第二次内循环后倒数第二个元素为次大值。
……
privatestaticvoidbuddleSort(int[] arr){
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-1-i; j++) {
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
privatestaticvoid insertSort(int[] arr){
for (int i = 1; i < arr.length; i++) {
int insertData= arr[i];
int j = i-1;
while(insertData< arr[j]){
arr[j+1] = arr[j];
j--;
if(j == -1){
break;
}
}
arr[j+1] = insertData;
}
}
- 三种常用排序算法整理
- 常用排序算法整理
- 算法整理(三):插入排序
- 常用的排序算法整理
- 常用排序算法代码整理
- 排序常用的三种算法
- 算法整理——常用排序算法
- 常用排序算法总结(三)
- 常用排序算法之一:三种常用的冒泡排序的改进算法。
- 常见排序算法整理(三)----归并排序、快速排序
- 三种常用的插入排序算法--直接插入排序、二分插入排序、希尔排序
- php常用我会的三种排序算法
- 常用算法之排序算法三【快速排序】
- 三种排序算法
- 三种排序算法
- 三种排序算法
- 常用排序算法总结(三)----选择排序 堆排序
- 几种排序算法整理
- jenkins自动化部署war包报错Tomcat is not stopped
- 设计模式概述
- VS2013 angularjs 智能提示
- 半角和全角转换函数
- USACO-Section 4.2 Job Processing (贪心)
- 三种常用排序算法整理
- KM最大权匹配入门训练
- C++作业4
- 迷宫问题
- Spring 实现远程访问详解——httpclient
- sphinx 原理及实现
- Android开发笔记(八十九)单例模式
- Linux配置bind服务器DNS服务器
- NGUI的ScrollView平滑移动到指定位置