zoukankan      html  css  js  c++  java
  • 冒泡排序,选择排序,插入排序

    上一次写的排序是在网上看视频教程的时候写下的,这一周学习到排序,发现老师讲的和视频看到的有一定的出入,上一周写的排序方法不是很正宗,现在重新按照新学习的方法写一次。

    感觉最简单的冒泡排序,这个和视频看到的没什么出入。

    public class maopao {
    	
    	public static void main(String[] args) {
    		int[] a={1,2,10,28,33,19,15,5,2};
    		maopp(a);
    		for(int x:a)
    			System.out.print(x+"	");
    	}
    	static void maopp(int[] a)
    	{
    		for(int i=0;i<a.length-1;i++)
    		{
    			for(int x=0;x<a.length-1-i;x++)
    			{
    				if(a[x]>a[x+1])
    				{
    					int tem=a[x];
    					a[x]=a[x+1];
    					a[x+1]=tem;
    				}
    			}
    		}
    	}
    }
    

      然后是选择排序,上周写的选择排序每次比较都要把元素交换位置,而现在学到的只需要在外循环完成一次才交换一次位置。

    public class Xuanze {
    
    	public static void main(String[] args) {
    		int[] a={10,22,33,9,17,16,22,19};
    		xuanz(a);
    		for(int x:a)
    			System.out.print(x+"    ");
    
    	}
    	static void xuanz(int[] a)
    	{
    		for(int x=0;x<a.length-1;x++)
    		{
    			int min=x;//初始化min为当前角标;
    			for(int i=x+1;i<a.length;i++)
    			{
    				if(a[min]>a[i])
    					min=i;//将最小值的角标赋值给min;
    			}
    			int tem=a[min];//将最小值赋给tem
    			a[min]=a[x];//将当前角标对应元素赋给min对应的元素。
    			a[x]=tem;//将最小值赋给当前角标对应的元素
    		}
    	}
    }
    

      接下来是插入排序,个人感觉比较麻烦一点,初学

    public class Cha {
    
    	public static void main(String[] args) {
    		int[] a={10,28,18,17,13,9,14,2,5};
    		charu(a);
    		for(int x:a)
    			System.out.print(x+"   ");
    
    	}
    	static  void charu(int[] a)
    	{
    		for(int i=1;i<a.length;i++)
    		{
    			int tem=a[i];//把a[i]定义为需要插入的数,
    			int p=i;//定义一个指针记录tem比较了几次,每比较一次自减1
    			for(int x=i-1;x>=0;x--)
    			{
    				if(tem<a[x])
    					{
    					a[x+1]=a[x];//如果需要插入的数比前面的数小,就把前面的数赋值给相邻的后面的角标元素。
    					p-=1;
    					}
    			}
    			a[p]=tem;//每比较一次a[i]的值就会向左边移动一个角标。
    		}
    	}
    }
    

      

  • 相关阅读:
    链队列的实现
    LeetCode——Count Complete Tree Nodes
    LeetCode——Lowest Common Ancestor of a Binary Search Tree
    LeetCode——Palindrome Linked List
    中文乱码问题及其解决办法
    LeetCode——Valid Anagram
    TCP/IP网络知识点总结
    深入理解javascript原型和闭包——从【自由变量】到【作用域链】
    AJAX笔试面试题汇总
    前端开发面试知识点大纲
  • 原文地址:https://www.cnblogs.com/chslch/p/4869471.html
Copyright © 2011-2022 走看看