一直分不清选择排序和冒泡排序,网上也好多都是模棱两可的,按自己的理解,总结了个小demo以作记录,希望批评指正
2018-03-02 00:16
549 查看
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int[] arr = { 1, 4, 2, 43, 5, 61, 89, 34, 67, 32, 40 }; //调用冒泡排序方法 bubblesort(arr); //调用选择排序方法,并输出。 SumSort mysort = new SumSort(); mysort.PopSort(arr); for (int i = 0; i < arr.Length; i++) { Console.Write("第{0}位是{1}\n", i + 1, arr[i]); } Console.WriteLine(); } //冒泡排序 降序排列 static void bubblesort(int[] a) { int i, j; int tmp; int flag = 0; //标记,如果第一次循环比较时没有发生交换,则说明数组是升序排序,不用排序,提前结束循环。 for (i = 0; i < a.Length; i++) //外层循环数组长度 { for (j = 0; j < a.Length - 1 - i; j++) //内层循环控制每次循环里比较的次数。 { if (a[j] > a[j + 1]) { tmp = a[j]; a[j] = a[j + 1]; a[j + 1] = tmp; flag = 1; } } if (0 == flag) { Console.WriteLine("升序排序"); break; } else { Console.WriteLine(a[j]); } } } } public class SumSort { //选择排序 升序排列 public void PopSort(int[] list) { int i, j, temp; //先定义一下要用的变量 for (i = 0; i < list.Length - 1; i++) { for (j = i + 1; j < list.Length; j++) { if (list[i] > list[j]) //如果第二个小于第一个数 { temp = list[i]; //把大的数放在一个临时存储位置 list[i] = list[j]; //然后把小的数赋给前一个,保证每趟排序前面的最小 list[j] = temp; //然后把临时位置的那个大数赋给后一个 } } } } } }
相关文章推荐
- 冒泡排序、选择排序、堆排序、快速排序、插入排序算法复杂度分析与算法实现(自己总结与转)
- 冒泡排序、选择排序、堆排序、快速排序、插入排序算法复杂度分析与算法实现(自己总结与转)
- 关于数据结构中冒泡排序和选择排序的总结
- c语言排序算法(所有的都是升序,冒泡排序、插入排序、快速排序、选择排序、希尔排序、堆排序 )
- 黑马程序员---冒泡排序和选择排序的理解
- java基本算法总结(冒泡排序、选择排序、插入排序)
- 关于基本排序的总结选择排序: 算法是: ① 第1趟排序 在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1]交换。 ③第i趟排序 第i趟排序开始时,当前有序区和无序区
- java中选择排序,冒泡排序和二分法查找学习记录
- 3种排序算法的可视化 冒泡排序 选择排序 快速排序 转自自己另一个帐号
- 排序方法总结(1)冒泡排序 选择排序
- 各种排序总结(一)之--—冒泡排序、选择排序、快速排序
- 1063 sicily (木有准确理解题意,一直wrong error)——不过这事快速排序的一次复习,还是记录一下
- 数组中排序的一些方法,选择排序,冒泡排序,和数组中自己的方法
- Java 选择排序、冒泡排序、快速排序、直接插入排序、Java自带的排序等方法的使用和总结
- 各种排序总结(一)之--—冒泡排序、选择排序、快速排序
- 算法:冒泡排序(Bubble Sort)、插入排序(Insertion Sort)和选择排序(Selection Sort)总结
- 排序总结(1)---冒泡排序、选择排序、插入排序、希尔排序
- oauth2 原理和理解(转载阮一峰的记录一下,后面自己再总结)
- c语言排序之冒泡排序,选择排序,插入排序,快速排序总结
- 总结4种常用排序(快排、选择排序、冒泡排序、插入排序)